【发布时间】:2017-11-21 15:35:57
【问题描述】:
我的代码无法正常运行知道为什么我会出现超出索引范围的错误吗?
package main
import "fmt"
func linearFindPeaks(arg []int) []int {
peaks := []int{}
lenArg := len(arg)
for i := 0; i < lenArg; i++ {
//if its the first element run this
//second if statement for the end of array
// for default statements
if arg[0] > arg[1] {
peaks = append(peaks, arg[0])
} else if arg[lenArg-1] > arg[lenArg-2] {
peaks = append(peaks, arg[lenArg-1])
} else if arg[i] > arg[i+1] && arg[i] > arg[i-1] && arg[i] != arg[0] && arg[i] != arg[lenArg-1] {
peaks = append(peaks, arg[i])
}
}
fmt.Println(peaks)
return peaks
}
func main() {}
【问题讨论】:
-
我邀请您添加一个 main 函数以实现更快的调试。无论如何,根据您的数组
arg[lenArg-1]和arg[lenArg-2]可能会抛出超出范围的异常。