摘要: java里一切都是对象,对象=引用+对象本身。 引用储存在堆栈(RAM)里,因为只有知道生命周期的数据才能存储在堆栈里,对象储存在堆里,因为堆不要求知道数据的生命周期。 Java里所有的对象都储存在堆里,当你new的时候堆就会分配空间,但堆的分配和清理慢,如果对于小的简单的基本类型,用引用直接储存值 阅读全文
posted @ 2019-09-23 21:12 dodoBehind 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 1 public int removeDuplicates(int[] nums) { 2 //返回值len的长度用++方便,因为填充一个值可能删除很多值 3 //初始化为1,填充则len++ 4 int len = 1; 5 OUT: 6 for (int i = 0, p = 0; i < nu 阅读全文
posted @ 2019-09-23 19:27 dodoBehind 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 抱歉,我就是交换了值,用数组保存的,没想到过了 -3-…… 1 public ListNode reverseKGroup(ListNode head, int k) { 2 ListNode p = head, p2 = p; 3 int[]a=new int[k]; 4 5 if (p == n 阅读全文
posted @ 2019-09-23 18:53 dodoBehind 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1 public ListNode swapPairs(ListNode head) { 2 if (head == null || head.next == null) return head; 3 ListNode a = head, b = head.next, c, last = null; 阅读全文
posted @ 2019-09-23 18:49 dodoBehind 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 原本是“逐一两两合并链表”,用时118ms,换成假分治后只用4ms,震惊!代码其实就是把遍历换成了队列…… 关键代码变化: “分治”: 1 static public ListNode mergeKLists(ListNode[] lists) { 2 if (lists == null || li 阅读全文
posted @ 2019-09-23 18:17 dodoBehind 阅读(123) 评论(0) 推荐(0) 编辑
摘要: f(n)="("+f(n-1)+") +f(i)f(n-i) +f(n-i)f(i) 举个例子: f(2)="("+f(1)+")" +"()"f(1) +f(1)"()" 1 import java.util.ArrayList; 2 import java.util.HashSet; 3 imp 阅读全文
posted @ 2019-09-23 17:31 dodoBehind 阅读(137) 评论(0) 推荐(0) 编辑