Leetcode List

Onsite talk

1.了解自己的項目細節(jié)

Question:

1.思考BST level order traverse 什么時候不用記錄size?

  1. HashTable 有啥用來著?

Note :

String[] array = new String[] {"lint", "intl","code"};
arraylist.set(index , Element);
Str.startsWith(string) 【Return true/false】

list.indexof(返回的是index啊
?。。。?br> list.get()返回的才是值?。?!

時刻謹記:substring的用法!
str.substring(start, length)
Chars beginning at start
Up to but not including end

神句!
map.put( c , map.getOrDefault(c , 0) + 1);

  //遍歷

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

//遍歷map中的鍵

for (Integer key : map.keySet()) {

System.out.println("Key = " + key);  

}

//遍歷map中的值

for (Integer value : map.values()) {

System.out.println("Value = " + value);  

}

    int i = Arrays.binarySearch(dp, 0, len, x);
      returns the index if contains. else return:
    【it returns (-(insertion point) - 1) 】

int count = Character.getNumericValue(char c); =========》char
Integer.parseInt() ========》String

    private Queue<Long> small = new PriorityQueue();
  默認出的是最小的,有null的時候感覺會出null,因為system.out.print 會報錯

PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
Character.isLowerCase

    HashSet 真是個好東西,只記錄有無這個值,不管重復多少次。   
    ArrayList: .size()
    String : .length()
    int[]num: .length
    hashTable.length;

    Integer.MAX_VALUE;
    Integer.MIN_VALUE;
    Arrays.sort(num);
    Arrays.fill( num, i);
    Collections.reverse(result);

    HashSet<Node> set = new HashSet<>();  set.size(); set.add(); set.contains();

    HashMap<node,node> map = new HashMap<>(); map.put(); map.containsKey();
    map.keySet(); 返回一套key!!~

    HashTABLE :  ListNode[] hashtable = new ListNode[newCapacity];

    char[] array= str.toCharArray();

    Queue<Integer> q = new LinkedList<Integer>();
    Stack<Integer> s = new Stack<>();
    s.pop();
    s.push(1);
    s.peek();

    q.add(1);
    q.offer(1);
    q.poll();
    q.peek();

位運算操作:

  A&B : 都是1則為1,否則為0 ========> 可以得到A和B中所有該進位的地方(都是1才進位)
  進位: A&B << 1
  << :移位運算符,所有的二進制像左移一個,末尾舔0.(相當于十進制乘以了2) 

  byte的取值范圍為-128~127,占用1個字節(jié)(-2的7次方到2的7次方-1)
  short的取值范圍為-32768~32767,占用2個字節(jié)(-2的15次方到2的15次方-1)
  int的取值范圍為(-2147483648~[2147483647](https://www.baidu.com/s?wd=2147483647&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YvPjR4mWuWnHnvPjuhPHbk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHb4PHDznWT)),占用4個字節(jié)(-2的31次方到2的31次方-1)
  long的取值范圍為(-9223372036854774808~9223372036854774807),占用8個字節(jié)(-2的63次方到2的63次方-1)

Easy

1.Sort Integers
2.Binary Tree Maximum node
3.Fibonacci
4.Rectangle Area
5.Remove LinkedList Element
6.A+B problem
7.Guess Number Game
8.Intersection of Two Arrays
9.Intersection of Two Arrays II

Chapter 1 Sort

Jun 19
1.Median (Quick sort)
July 3
2.StrStr(自己的方法。有時間再復習答案的方法)

Chapter 2 Binary Search

1.First Position of Target
3.Search Insert Position (注意end+1的情況)
4.Search a 2D Matrix
5.Find Peak Element(以mid為最低點看兩邊+1的趨勢即可。但是要考慮else的情況,隨便分配給start或者end 都可以。不分配的話死循環(huán)了。)
6.First Bad Version
July 16
1.Search in Rotated Sorted Array
2.Search in Rotated Sorted Array II
3.Find Minimum in Rotated Sorted Array(一定是nums[mid] > nums[end]
而不是nums[mid] >= nums[start]
)
4.Find Minimum in Rotated Sorted Array II
5.Search for a Range
6.Binary Search Tree Iterator(用stack)
7.Insert Node in a Binary Search Tree
8.Remove Node in Binary Search Tree
9.Search Range in Binary Search Tree
10.Convert BST to Greater Tree

Chapter 3 Binary Search Tree

Binary Search Tree 的定義: 左< 中 < 右

25.Binary Tree Inorder Traversal
26.Binary Tree Postorder Traversal
27.Binary Tree preorder Traversal
28.Binary Tree level order Traversal
29.Binary Tree Level Order Traversal II
30.Binary Tree Paths(String的相加:直接用加號相加)
31.Binary Tree Path Sum(1.考慮負數(shù)情況 2.題目說了要到達leaf)
Jun 19
5.Count of Smaller Number (Segement Tree 的解法???!)
6.Segment Tree Build( Segment Tree
7.Segment Tree Modify
Jun 20
1.Segment Tree Query
2.Segment Tree Query II
Jun 23
1.Maximum Depth of Binary Tree
2.Minimum Depth of Binary Tree (Path 一定是要到達leaf的)
3.Validate Binary Search Tree
4.Lowest Common Ancestor
5.Binary Tree Zigzag Level Order Traversal

July 11
6.Balanced Binary Tree

Chapter 4 D&Q

July 6
1.Triangle : (自上而下遍歷的時候呢,注意第一條不能算進去,而且,最后一條也不能算呀)
O(n) 的方法:自下而上,res[0][0] = res[0][0+1]+ res[0+1][0+1] +triangle[0][0]。。。遞歸每次只保留最小值
2.Minimum Path Sum

July7
3.Climbing Stairs
4.Unique Paths
5.Unique Paths II

July10
1.Binary Tree Maximum Path Sum (簡潔優(yōu)雅的leetcode)
2.Jump Game
3.Jump Game II
4.Longest Increasing Subsequence( Arrays.BinarySearch() )
5.Longest Common Subsequence (用二維數(shù)組來做,你敢信嗎 或許有圖的概念在里面?)
6.Longest Common Substring(思考這一題dp的推導公式
7.valid Palindrome
8.Palindrome Partitioning

July11
1.Palindrome Partitioning II (又用了二維格子,interesting )
2.word break(注意i和j ,不要用最簡單的從前往后,而是從j到i)

July14
3.Distinct Subsequences(用二維格子)
4.Edit Distance(用二維格子)
5.Interleaving String ((用二維格子,這是目前最難的

Chapter 7 Graph

Graph 掌握重點:

  1. clone graph
  2. Topological Sorting
  3. Search:
    A. DFS : 遞歸,(二叉樹,D&Q : DP問題是試圖把2^n或者n!===> n^2, n^3)
    O(2^n),O(n!)
    find all possible solutions : Permutations / subsets
    B. BFS:level order (while)
    O(n)====> Binary Search Tree, O(m) ====>Graph
    //n 是點,m 是邊
    graph traversal
    find shortest path in a simple graph

6.clone Graph
7.classical binary search
8.Topological Sorting
9.Permutations
10.subsets
11.N-Queens
12.Valid Palindrome
13.Palindrome Partitioning
14.Combinations
15.Combination Sum
16.word ladder
17.word Ladder2

Chapter 8 Data Structure

1. Stack

18.Minstack
19.Implement Queue by two Stacks
20.Largest Rectangle in Histogram
21.max Tree (!)

2. Hash

Operations:
Insert/ Delete/ Search : O(1)

Collision :
Open Hashing(LinkedList)
Closed Hashing(Array)

因此為了避免collision,要盡量離散

Java differences of :
HashTable / HashSet / HashMap
HashTable is thread Safe

22.rehashing
23.Longest Consecutive Sequence (不用考慮array是否sort,在hashset里找到一個刪去一個就好了。hashset 的意義本身就是記錄是否contain的)
Jun.7
24.LRU Cache (#DataStructure: LInkedHashMAp

Chapter 9 High Frequence

33.Single Number (異或運算 ^ : 不進位的二進制加法)
34.Single Number 2
35.Single Number 3
40.Majority Number
Jun.19
2.Majority Number 2
3.Majority Number 3
Jun.30
1.Data Stream Median (Heap : log(n) )
2.Best Time to Buy and Sell Stock
3.Maximum Subarray
4.Minimum Subarray
5.Maximum Subarray 2
6.Best Time to Buy and Sell Stock 2
7.Best Time to Buy and Sell Stock 3
8.Two sum( Return index 基本上只能用hash表 )
(** 返回數(shù)值的話,是Two pointer問題** )
9.Maximum Subarray Difference(只通過了百分之64,要參考求min時的做法)10.3_SUM(Two Pointer)(未跑通)
July.1
1.4_SUM(未做)
2.3-SUM closet (未做)
July.3
1.Partition Array (背誦)
2.Sort Letters by Case
3.sort color 1
4.sort color 2
5.Interleaving positive and negative
6.Sqrt(二分法。變量是long)
7.Fast Power (二分法。不是很明白這個數(shù)學運算,背誦

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,921評論 0 33
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員),僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 18,391評論 2 36
  • 我小時候很喜歡看童話,各種王子與公主的美麗童話。 童話里的王子一定英武不凡,相貌英俊,只愛公主一人,而公主則一定美...
    你家二爺藥不能停閱讀 295評論 0 0
  • 文/Miss阿喂 一五年四月的尾巴,老王說,又給你招了個平面。此時,在這個陣仗不小,我們的陣營卻很小的地方,加上你...
    Miss阿喂閱讀 359評論 0 0
  • Reactor線程模型 Reactor單線程模型所有的I/O操作都由同一個NIO線程完成。只適合小容量應用場景。不...
    碼農(nóng)也越野閱讀 290評論 0 0

友情鏈接更多精彩內(nèi)容