题目是这样的: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note: The number of elements initialized in nums1 and nums2 are m and n respectively.You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
# 因为nums1和num2的数组不一样,当一方的数组遍历完,那么直接将对方数组添加到nums1后面 if i == m or j == n: if i == m and j != n: nums1[k] = nums2[j] j += 1 continue if i != m and j == n: nums1[k] = temp[i] i += 1 continue
classSolution: defmerge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: # 双指针,牺牲空间换取时间 temp = nums1[:m] i = 0 print(temp) j = 0 for k inrange(m+n): if i == m or j == n: if i == m and j != n: nums1[k] = nums2[j] j += 1 continue if i != m and j == n: nums1[k] = temp[i] i += 1 continue if temp[i] < nums2[j]: nums1[k] = temp[i] i += 1 else: nums1[k] = nums2[j] j += 1 return nums1
Java
1 2 3 4 5 6
classSolution{ publicvoidmerge(int[] nums1, int m, int[] nums2, int n){ System.arraycopy(nums2, 0, nums1, m, n); Arrays.sort(nums1); } }