前序:最近打算刷一波算法題,奈何堅持不下來,感受是方法不對;如今從新調整,按照類型來刷,順便記錄一下刷題過程,加油!!!java
一、str.charAt(i)的意思是第i個字符在字符串str中所佔的位置返回值:算法
String s = 'AAAAA11DSF';
char c = s.charAt(1);
int aa = s.length()
String aa = s.substring(i, i+2)
s.indexOf(AA); 索引開始位置 : 0
List<String> output = new ArrayList<String>();
複製代碼
二、對字符串的使用: 數組
StringBuilder stringBuilder = new StringBuilder() ;
stringBuilder.append(romans[index] + " ");複製代碼
三、棧bash
Stack<Character> stack = new Stack<Character>();
stack.pop();
stack.push(c);
stack.isEmpty()複製代碼
四、hashapp
HashMap<Character, Character> mappings = new HashMap<Character, Character>();
mappings.put(')', '(');
mappings.containsKey(c)
複製代碼
全是知識點post
Map<String, List> ans = new HashMap<String, List>();
for (String s : strs) {
char[] ca = s.toCharArray();
Arrays.sort(ca);
String key = String.valueOf(ca);
if (!ans.containsKey(key)) ans.put(key, new ArrayList());
ans.get(key).add(s);
}
return new ArrayList(ans.values());複製代碼
--------------------------------------------------------------------------------ui
第一天:用了很久spa
1 | 兩數之和 | 方法1:兩層循環,O(n²) 方法2:用hashmap.containkey, O(n) |
數組 | 簡單 | ||
2 | 兩數相加 | 鏈表 | ||||
3 | 無重複字符的最長子串 | s.charAt(i),hashmap.containkey | 字符串 | 哈希表 | 中 | |
4 | 尋找兩個有序數組的中位數 | |||||
5 | 最長迴文子串 | O(n²) | 字符串 | 動態規劃 | 難 | |
6 | Z 字形變換 | O(n),字符串遍歷方法組合爲數組 | 字符串 | 遍歷 | 難 |
鏈表總結:.net
https://blog.csdn.net/thefutureisour/article/details/8174313 code
https://blog.csdn.net/qq_34233510/article/details/90170737 節點屬性在單向鏈表上 https://blog.csdn.net/qq_28081081/article/details/80763268 https://blog.csdn.net/lhl1124281072/article/details/79844431 https://blog.csdn.net/u012531536/article/details/80170893 鏈表反轉過程