image.png

    需要计算需要遍历的索引位置是
    idx :=(j+i)%len(nums)

    1. package main
    2. import "fmt"
    3. func nextGreaterElements(nums []int) []int {
    4. res :=make([]int,len(nums))
    5. flag :=false
    6. for i:=0;i<len(nums);i++{
    7. flag = false
    8. for j:=1;j<len(nums);j++{
    9. idx :=(j+i)%len(nums)
    10. if nums[i]<nums[idx] {
    11. res[i] = nums[idx]
    12. flag = true
    13. break
    14. }
    15. }
    16. if !flag {
    17. res[i] = -1
    18. }
    19. }
    20. return res
    21. }
    22. func main() {
    23. fmt.Println(nextGreaterElements([]int{1,2,1}))
    24. fmt.Println(nextGreaterElements([]int{5,4,3,2,1}))
    25. }

    image.png