学到的:
1.返回基本类型的数据可以直接返回,new int[3]{1,2,3};
2.三数之和,指针写法,先排序,固定两个值,第三个值必定随着左指针右移而左移。
3.java char的使用
StringBuffer sb = new StringBuffer();
char c = (char)('a'+1);
sb.append();
sb.reverse();
String a = "xxx";
(int)a.charAt(i); //可以获得这个字母的ASCII
reverseS1.contains(s2) //判断一个字符串是否包含另外一个字符串
4.Integer还是不能用==作为比较,应该使用.equals();
5.对于链表,指针类问题
ListNode newHeadA = headA;
可以将该结点赋值给其他结点,从而操作整条链表,链表操作可以用xxx.next=xxx.next.next,表示下一个结点.
双向队列.
Dequestack = new ArrayDeque<>(); 可以在头部与尾部进行增删.(First/Last) stack.getFirst(); stack.addFirst(); stack.removeFirst(); Integer.intValue(); //表示这个int值
java,对于图的构建:
ArrayList> list = new ArrayList<>(n); //先创建一个二维list
for (int i = 0; i < n; i++) { //然后进行初始化.
list.add(new ArrayList<>());
}
for (int i = 0; i < graph.length; i++) { //再将图形状保存.
list.get(graph[i][0]).add(graph[i][1]);
}
java遍历/构造一棵树的写法,
public TreeNode dfs(int[] nums,int l,int r){
if(l>=r) return null;
int mid=(l+r)/2;
TreeNode root = new TreeNode(nums[mid]);
root.left = dfs(nums,l,mid);
root.right = dfs(nums,mid+1,r);
return root;
}



