내 코드가 제대로 실행되지 않습니다. 배열의 끝과 시작을 포함하여 최고점을 찾은 다음 그 전후에 색인에 시작 또는 끝이 아닌 모든 색인을 비교하려고합니다. 왜 색인 범위 오류가 발생합니까?인덱스에서 범위를 벗어난 인덱스 오류가 계속 발생합니다. 코드에 어떤 문제가 있습니까?
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() {}
놀이터 : 내가 볼 수 https://play.golang.org/p/2JRgEyRA50
은 당신이 빠른 디버그 할 수 있도록 주요 기능을 추가 할 수 초대합니다. 어쨌든, 배열에 따라 arg [lenArg-1]과 arg [lenArg-2]는 범위를 벗어난 예외를 던질 수 있습니다. – Dlacreme