[英]Swift fatal error: Index out of range
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)
您的變量nums1
是一個0元素數組。 所以沒有空間讓你做作業。 也就是說, index3=0
並且您使用它來指向nums1
的第一個元素,但是沒有第一個元素。
例如,如果您更改:
haha = []
至:
haha = [0]
那么你的數組nums1
將在方法中有一個第0個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.