From 87550052c21546f7f2f1ae1588922a50851be429 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Thu, 5 Apr 2018 11:15:34 +0800 Subject: [PATCH] auto commit --- notes/Leetcode 题解.md | 159 +++++++++++++++++- pics/f4cdda3e-324c-49b5-8c14-08a3db634b29.png | Bin 0 -> 24576 bytes 2 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 pics/f4cdda3e-324c-49b5-8c14-08a3db634b29.png diff --git a/notes/Leetcode 题解.md b/notes/Leetcode 题解.md index 4375b3f4..66522aef 100644 --- a/notes/Leetcode 题解.md +++ b/notes/Leetcode 题解.md @@ -2727,7 +2727,7 @@ public int minPathSum(int[][] grid) { 题目描述:交易之后需要有一天的冷却时间。 -

+

```java public int maxProfit(int[] prices) { @@ -4218,6 +4218,11 @@ public ListNode mergeTwoLists(ListNode l1, ListNode l2) { [Leetcode : 83. Remove Duplicates from Sorted List (Easy)](https://leetcode.com/problems/remove-duplicates-from-sorted-list/description/) +```html +Given 1->1->2, return 1->2. +Given 1->1->2->3->3, return 1->2->3. +``` + ```java public ListNode deleteDuplicates(ListNode head) { if(head == null || head.next == null) return head; @@ -4226,6 +4231,158 @@ public ListNode deleteDuplicates(ListNode head) { } ``` +**交换链表中的相邻结点** + +[Leetcode : 24. Swap Nodes in Pairs (Medium)](https://leetcode.com/problems/swap-nodes-in-pairs/description/) + +```html +Given 1->2->3->4, you should return the list as 2->1->4->3. +``` + +题目要求:不能修改结点的 val 值;O(1) 空间复杂度。 + +```java +public ListNode swapPairs(ListNode head) { + ListNode newHead = new ListNode(-1); + newHead.next = head; + ListNode cur = head, pre = newHead; + while (cur != null && cur.next != null) { + ListNode next = cur.next; + pre.next = next; + cur.next = next.next; + next.next = cur; + pre = cur; + cur = cur.next; + } + return newHead.next; +} +``` + +**根据有序链表构造平衡的 BST** + +[Leetcode : 109. Convert Sorted List to Binary Search Tree (Medium)](https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/description/) + +```html +Given the sorted linked list: [-10,-3,0,5,9], + +One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST: + + 0 + / \ + -3 9 + / / + -10 5 +``` + +```java +public TreeNode sortedListToBST(ListNode head) { + if (head == null) return null; + int size = size(head); + if (size == 1) return new TreeNode(head.val); + ListNode pre = head, mid = pre.next; + int step = 2; + while (step <= size / 2) { + pre = mid; + mid = mid.next; + step++; + } + pre.next = null; + TreeNode t = new TreeNode(mid.val); + t.left = sortedListToBST(head); + t.right = sortedListToBST(mid.next); + return t; +} + +private int size(ListNode node) { + int size = 0; + while (node != null) { + size++; + node = node.next; + } + return size; +} +``` + + +**链表求和** + +[Leetcode : 445. Add Two Numbers II (Medium)](https://leetcode.com/problems/add-two-numbers-ii/description/) + +```html +Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) +Output: 7 -> 8 -> 0 -> 7 +``` + +题目要求:不能修改原始链表。 + +```java +public ListNode addTwoNumbers(ListNode l1, ListNode l2) { + Stack l1Stack = buildStack(l1); + Stack l2Stack = buildStack(l2); + ListNode head = new ListNode(-1); + int carry = 0; + while (!l1Stack.isEmpty() || !l2Stack.isEmpty() || carry != 0) { + int x = l1Stack.isEmpty() ? 0 : l1Stack.pop(); + int y = l2Stack.isEmpty() ? 0 : l2Stack.pop(); + int sum = x + y + carry; + ListNode node = new ListNode(sum % 10); + node.next = head.next; + head.next = node; + carry = sum / 10; + } + return head.next; +} + +private Stack buildStack(ListNode l) { + Stack stack = new Stack<>(); + while (l != null) { + stack.push(l.val); + l = l.next; + } + return stack; +} +``` + +**分隔链表** + +[Leetcode : 725. Split Linked List in Parts(Medium)](https://leetcode.com/problems/split-linked-list-in-parts/description/) + +```html +Input: +root = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], k = 3 +Output: [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]] +Explanation: +The input has been split into consecutive parts with size difference at most 1, and earlier parts are a larger size than the later parts. +``` + +题目描述:把链表分隔成 k 部分,每部分的长度都应该尽可能相同,排在前面的长度应该大于等于后面的。 + +```java +public ListNode[] splitListToParts(ListNode root, int k) { + int N = 0; + ListNode cur = root; + while (cur != null) { + N++; + cur = cur.next; + } + int mod = N % k; + int size = N / k; + ListNode[] ret = new ListNode[k]; + cur = root; + for (int i = 0; cur != null && i < k; i++) { + ret[i] = cur; + int curSize = size + (mod-- > 0 ? 1 : 0); + for (int j = 0; j < curSize - 1; j++) { + cur = cur.next; + } + ListNode next = cur.next; + cur.next = null; + cur = next; + } + return ret; +} +``` + **回文链表** [Leetcode : 234. Palindrome Linked List (Easy)](https://leetcode.com/problems/palindrome-linked-list/description/) diff --git a/pics/f4cdda3e-324c-49b5-8c14-08a3db634b29.png b/pics/f4cdda3e-324c-49b5-8c14-08a3db634b29.png new file mode 100644 index 0000000000000000000000000000000000000000..60fc81bb8d7fbf2f7eafb748c7f1a191cdb0f921 GIT binary patch literal 24576 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 literal 0 HcmV?d00001