即使检查正确的条件,也要抛出,慌张:运行时错误:索引超出范围[3],长度为3

问题描述

package main

import "fmt"

func mergeSortedArray(arr1 []int,arr2 []int) []int {

    var mergedArr []int
    lengthArr := len(arr1) + len(arr2)
    fmt.Println(lengthArr)

    i := 0
    j := 0
    //Check input
    if len(arr1) == 0 {
        return arr2
    }

    if len(arr2) == 0 {
        return arr1
    }

    for c := 0; c < lengthArr; c++ {
        if arr1[i] >= arr2[j] {
            mergedArr = append(mergedArr,arr2[j])
            j++
        } else {
            mergedArr = append(mergedArr,arr1[i])
            i++
        }
    }
    return mergedArr

}

func main() {

    arr1 := []int{0,3,31}
    arr2 := []int{4,6,30}

    m := mergeSortedArray(arr1,arr2)
    fmt.Println(m)
    //Exp output : 0,4,30,31
}

重要收获,同时进行以下操作 for c := 0; c < lengthArr-1; c++

它给出结果:0,30.

任何人都可以查看此代码,这将对您有很大的帮助。 预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)