LeetCode Easy 88合并排序数组
问题:
给定两个排序整数数组nums1和nums2,将nums2合并为nums1作为一个排序数组。
注:
您可以假设nums1有足够的空间(大小大于或等于m+n)来容纳nums2中的额外元素。nums1和nums2初始化的元素数分别为m和n。
我有一个错误,我在代码中注释了这个错误。我已经打印了index2和index3,它们都是零。它们应该是合法的。为什么我会犯这个错误?
任何帮助,我都很感激。非常感谢您抽出时间!
class Solution
{
func merge(inout nums1:[Int], _ m: Int, _ nums2:[Int], _ n: Int)
{
var index1 = m - 1
var index2 = n - 1
var index3 = m + n - 1
while index2 >= 0 && index1 >= 0
{
if nums1[index1] > nums2[index2]
{
nums1[index3] = nums1[index1]
index3 -= 1
index1 -= 1
}
else
{
nums1[index3] = nums2[index2]
index3 -= 1
index2 -= 1
}
}
while index2 >= 0
{
print(index2)
print(index3)
nums1[index3] = nums2[index2] // fatal error: Index out of range
index3 -= 1
index2 -= 1
}
}
}
let test1 = Solution()
var haha = [Int]()
haha = []
test1.merge(&haha,0, [1],1)
print(haha)