Skip to content

Commit c1dcfa1

Browse files
committed
feat: add 100
1 parent 36ba506 commit c1dcfa1

File tree

15 files changed

+406
-64
lines changed

15 files changed

+406
-64
lines changed

note/088/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ You may assume that *nums1* has enough space (size that is greater or equal to *
1212

1313
## 思路
1414

15-
题意是给两个已排序的数组`nums1``nums2`,合并`nums2``nums1`中,两数组元素个数分别为`m``n`,而且`nums1`数组的长度足够容纳`m + n`个元素,如果我们按顺序排下去,那肯定要开辟一个新数组来保存覆盖的元素,所以我们选择逆序,这样利用`nums1`自身空间足矣,依次把大的元素插入到`nums1`的末尾,确保`nums2`中的元素全部插入到`nums1`即可。
15+
题意是给两个已排序的数组`nums1``nums2`,合并`nums2``nums1`中,两数组元素个数分别为`m``n`,而且`nums1`数组的长度足够容纳`m + n`个元素,如果我们按顺序排下去,那肯定要开辟一个新数组来保存元素,如果我们选择逆序,这样利用`nums1`自身空间足矣,不会出现覆盖的情况,依次把大的元素插入到`nums1`的末尾,确保`nums2`中的元素全部插入到`nums1`即可。
1616

1717
``` java
1818
public class Solution {

note/100/README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# [Merge Sorted Array][title]
2+
3+
## Description
4+
5+
Given two sorted integer arrays *nums1* and *nums2*, merge *nums2* into *nums1* as one sorted array.
6+
7+
**Note:**
8+
You may assume that *nums1* has enough space (size that is greater or equal to *m* + *n*) to hold additional elements from *nums2*. The number of elements initialized in *nums1* and *nums2* are *m* and *n* respectively.
9+
10+
**Tags:** Array, Two Pointers
11+
12+
13+
## 思路
14+
15+
题意是给两个已排序的数组`nums1``nums2`,合并`nums2``nums1`中,两数组元素个数分别为`m``n`,而且`nums1`数组的长度足够容纳`m + n`个元素,如果我们按顺序排下去,那肯定要开辟一个新数组来保存元素,如果我们选择逆序,这样利用`nums1`自身空间足矣,不会出现覆盖的情况,依次把大的元素插入到`nums1`的末尾,确保`nums2`中的元素全部插入到`nums1`即可。
16+
17+
``` java
18+
public class Solution {
19+
public void merge(int[] nums1, int m, int[] nums2, int n) {
20+
int p = m-- + n-- - 1;
21+
while (m >= 0 && n >= 0)
22+
nums1[p--] = nums1[m] > nums2[n] ? nums1[m--] : nums2[n--];
23+
while (n >= 0)
24+
nums1[p--] = nums2[n--];
25+
}
26+
}
27+
```
28+
29+
30+
## 结语
31+
32+
如果你同我一样热爱数据结构、算法、LeetCode,可以关注我GitHub上的LeetCode题解:[awesome-java-leetcode][ajl]
33+
34+
35+
36+
[title]: https://leetcode.com/problems/merge-sorted-array
37+
[ajl]: https://github.com/Blankj/awesome-java-leetcode

project/leetcode/.idea/workspace.xml

Lines changed: 219 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

project/leetcode/src/com/blankj/easy/_021/Solution.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
3131

3232
public static void main(String[] args) {
3333
Solution solution = new Solution();
34-
;
3534
ListNode listNode00 = new ListNode(1);
3635
ListNode listNode01 = new ListNode(3);
3736
ListNode listNode02 = new ListNode(5);
@@ -52,10 +51,10 @@ public static void main(String[] args) {
5251
listNode12.next = listNode13;
5352
listNode13.next = listNode14;
5453
listNode14.next = null;
55-
ListNode listNode0 = ListNode.createTestData(new int[]{1, 3, 5, 7, 9});
56-
ListNode listNode1 = ListNode.createTestData(new int[]{2, 4, 6, 8, 10});
57-
System.out.println(listNode0.toString());
58-
System.out.println(listNode1.toString());
59-
System.out.println(solution.mergeTwoLists(listNode0, listNode1).toString());
54+
ListNode listNode0 = ListNode.createTestData("[1,3,5,7,9]");
55+
ListNode listNode1 = ListNode.createTestData("[2,4,6,8,10]");
56+
ListNode.print(listNode0);
57+
ListNode.print(listNode1);
58+
ListNode.print(solution.mergeTwoLists(listNode0, listNode1));
6059
}
6160
}

0 commit comments

Comments
 (0)