今天在家困了一不小心睡多了結果晚上睡不着。
一、最長不重複子串
題目:找到一個沒有重複字符的子串。
題解:遍歷每個字符起始的子串。
大概就是一個數組loc[256]記錄最新的字符開始位置,然後一個數組max[256]存最長的子串,複雜度就是O(n+256)
二、N個數字找第k大
題解:1、選擇排序:遍歷一遍找第一大,遍歷一遍找第二大……O(nk)
2、快速排序:找一個基準,劃分成比它小的一堆,比它大的另一堆~全部排完……O(n log2 n)
3、找出k個數,建立一個小根堆。如果有新的數比堆頂小,拋棄。比堆頂大就換掉,然後更新堆。O(nlog2k)