前序:最近打算刷一波算法题,奈何坚持不下来,感受是方法不对;如今从新调整,按照类型来刷,顺便记录一下刷题过程,加油!!!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 链表反转过程