LeetCode簡単88マージソートされた配列のうちスウィフト致命的なエラー:インデックスが範囲
質問:
は、2つのソート整数配列nums1とnums2を考えると、1つのソートされた配列としてnums1にnums2をマージします。
注
あなたはnums1がnums2からadditionalelementsを保持するのに十分なスペース(大きいまたはM + Nに等しい大きさ)を有していると仮定してもよいです。 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