原创 九章算法筆記 - 思路總結

上九章算法課的筆記,之前記在筆記本上,現在掃描出來便於保存,每次面試之前看着這個筆記過一遍,心裏有譜一些。 目錄: 1.二分搜索 Binary search 2.二叉樹與分治法 3.寬度優先搜索 BFS 4.深度優先搜索 DFS 5

原创 海量數據處理 - 筆記

主要參考《編程之法-面試和算法心得》一書。   目錄: 1.STL容器 2.散列分治 3.多層劃分 4.MapReduce 5.外排序 6.位圖 7.布隆過濾器 8.Trie樹 9.數據庫 10.倒排索引 11.simhash算法

原创 合併多個excel文件

經常需要彙總多張excel表格,於是有了下面這個小腳本。 import os import glob import pandas as pd # drop duplications according to parameter 'o

原创 leetcode-高頻題題解

1. Two Sum hashmap的2-sum模板 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { v

原创 ch8 - Data Structure 數據結構

線性數據結構 - Queue、Stack、Hash 樹型數據結構 - Heap / Priority Queue、TreeMap BFS的主要數據結構是 Queue DFS的主要數據結構是 Stack 目錄: 什麼是數據結構

原创 ch9 - 動態規劃(下)

目錄: 面試中常見的動態規劃類型 座標型動態規劃 1.1 題目 - 最小路徑和(求最大最小值) 1.2 題目 - 不同的路徑(統計方案個數) 1.3 題目 - 爬樓梯 (統計方案個數、一維座標上的dp) 1.4 題目 - jump

原创 揹包問題

揹包問題有三種: 1. 01揹包: 每件物品只能放一次 2. 完全揹包:每種物品可以放無限多次 3. 多重揹包:每件物品可以放有限次數 01揹包 1)問題描述:**有n 個物品,它們有各自的重量和價值,現有給定容量的揹包,如何讓揹包裏

原创 Quick Sort & Merge Sort

兩種排序均採用分治的思想:quick sort先整體有序,再局部有序。歸併排序先局部有序,再整體有序。 目錄: quick sort 和 merge sort 的比較 quick sort merge sort 1. quick

原创 ch6 - 鏈表Linked List

鏈表大部分是偏實踐的,偏算法的很少。 目錄: 鏈表基礎知識 Reverse Nodes in k-Group (450 in linkcode) Copy List with Random Pointer (105 in linkc

原创 線段樹

目錄: 1.quick sort 和 merge sort 的比較 2.quick sort 3.merge sort 1. quick sort 和 merge sort 的區別於聯繫 1). 時間複雜度:都是 構建線段樹: /

原创 ch8 - Heap堆

支持的操作:O(logn) Add / O(logn) Remove / O(1) Min or Max (n是堆中的元素的個數) Min Heap/ Max Heap(不能同時求最大和最小) 目錄: 1.基礎知識 - 取最大

原创 virtualenv - 創建隔離的python運行環境

筆記本安裝了不同版本的多個python環境,之前常用的是python3,但是最近需要在python2.7下寫代碼,在安裝各種包時,無論用pip還是pip3都會默認安裝在python3.6下,更改默認的python環境之後也沒解決。然後

原创 Linux終端複用神器-Tmux使用梳理

Tmux常見快捷鍵 詳見:https://www.cnblogs.com/kevingrace/p/6496899.html

原创 ch8 - Hash哈希表

支持的操作:O(1)的插入,O(1)的查找,O(1)的刪除 java中hash table(線程安全,有加鎖機制)、hash map(線程不安全)、hash set(只有key,沒有value)的區別 目錄: 1.hash func

原创 策略

二分法的適用條件: 時間複雜度是 O(logn) 時間複雜度是O(n!)的是:全排列 **時間複雜度是O(2^n):**和組合有關係,和01串的組合類似,在每個位置,選左邊是0,選右邊是1。一定會走到第n層纔會結束,每層都是向左走,向