2020年05月26日
leetcode
-
deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。当Deque作为队列的时候,会产生FIFO(先进先出)行为。同时,Deque也可以作为LIFO(后进先出)堆栈,此接口优于传统的Stack类使用
-
ArrayDeque是Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。但其是线程不安全的。ArrayDeque是Deque的实现类,可以作为栈来使用,效率高于Stack;也可以作为队列来使用,效率高于LinkedList。需要注意的是,ArrayDeque不支持null值。而LinkedList支持null值。
-
优秀代码参考
ID | 题目大致内容 | 解题思想 | 注意点 |
---|---|---|---|
100 | 相同的树 | 方法一 递归。方法二 迭代。 | |
401 | 二进制手表 | 知识点是回溯算法。 |
常用方法积累
类名 | 方法名 | 解释 |
---|---|---|
ArrayList | indexOf(value) | 返回value值对应的索引值, |
ArrayList | copyOfRange(T[ ] original,int from,int to) | 将原数组original,从下标from开始复制,复制到上标to,生成一个新的数组。 |
ArrayList | ans.get(i).append© | 名为ans的ArrayList对象拿出索引i处的元素,并在其后追加一个字符或数字c |
HashMap | getOrDefault(Object key, V defaultValue) | 当Map集合中有这个key时,就使用对应的value值,如果没有就使用默认值defaultValue |
Map | entrySet() | 获取所有key和value,遍历的时候用,例子:for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());} |
Integer | toBinaryString(num) | 返回num整数的二进制字符串表达 |
Integer | toHexString(num) | 返回num整数的十六进制字符串表达 |
Integer | bitCount(num) | 返回num整数的二进制表达式中1的个数 |
Character | toLowerCase© | 返回c的字母小写形式 |
Character | toUpperCase© | 返回c的字母大写形式 |
Character | isLetter© | 判断c是否为字母 |
String | format(patten,num) | 格式化字符串,比如format("%d:%02d",1,2),输出结果为1:02 |