私のコードは正しく実行されません。私は、配列の終わりと先頭を含むピークを見つけて、誰かが知っている前と後のインデックスの先頭または終わりではないすべてのインデックスを比較しようとしていますなぜインデックスの範囲外のエラーが出ているのですか?私のコードで何が問題になっていますか?
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