1
本文給出了易88合併排序後的數組夫特致命錯誤:索引超出範圍
問題:
鑑於兩個已排序的整數數組nums1和nums2,合併nums2成nums1爲一個排序後的數組。
注:
你可以假設nums1有足夠的空間(尺寸大於或等於M + N)從nums2持有additionalelements。 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)
非常感謝!這對我來說完全有意義。感謝你的幫助! – Tang