首页 > 试题广场 >

跳跃游戏(一)

[编程题]跳跃游戏(一)
  • 热度指数:6043 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个非负整数数组nums,假定最开始处于下标为0的位置,数组里面的每个元素代表下一跳能够跳跃的最大长度。如果能够跳到数组最后一个位置,则输出true,否则输出false。
数据范围:


输入描述:
第一行输入一个正整数 n ,表示数组 nums 的长度
第二行输入 n 个整数表示数组的每个元素


输出描述:
输出 true 或者 false
示例1

输入

7
2 1 3 3 0 0 100

输出

true

说明

首先位于nums[0]=2,然后可以跳2步,到nums[2]=3的位置,再跳到nums[3]=3的位置,再直接跳到nums[6]=100,可以跳到最后,输出true   
示例2

输入

7
2 1 3 2 0 0 100

输出

false

说明

无论怎么样,都跳不到nums[6]=100的位置   
package main

import (
    "fmt"
)

func main() {
    var n int
    fmt.Scan(&n)
    var max,x int
    for i:=0;i<n;i++{
        fmt.Scan(&x)
        if i>max{
            fmt.Print(false)
            return
        }
        if i+x>max{
            max=i+x
        }
    }
    fmt.Print(true)
}

发表于 2023-02-24 21:03:37 回复(0)