根据任务描述,输出应该是一个新数组,其中数组 days 的所有元素都大于其上一个和下一个元素(以 1 为增量)。例如,我们有作为输入
[ ]int{3, 2, 4, 3, 7, 9}
输出应该是:
[ ]int{3, 4, 9}
起初我试着写下一个条件:
if days[i] > days[i-1] && days[i] > days[i+1] {
arr = append(arr, days[i])
}
但发生错误:index out of range [-1]
然后我改变了条件并为最后一个元素添加了一个特殊条件:
package main
import (
"fmt"
)
func chaos(days []int) []int {
var arr []int
for i := 0; i < len(days)-1; i++ {
if days[i] > days[i+1] {
arr = append(arr, days[i])
}
if days[len(days)-1] > days[len(days)-2] {
arr = append(arr, days[len(days)-1])
}
}
return arr
}
func main() {
fmt.Println(chaos([]int{3, 2, 4, 3, 7, 9}))
}
但输出是[3 9 9 4 9 9 9]
如何正确指定最后一个元素的条件以及为什么我的结果不正确?
宝慕林4294392
智慧大石
相关分类