zoukankan      html  css  js  c++  java
  • 计蒜客:跳跃游戏

    https://nanti.jisuanke.com/t/18

    给定一个非负整数数组,假定你的初始位置为数组第一个下标。

    数组中的每个元素代表你在那个位置能够跳跃的最大长度。

    请确认你是否能够跳跃到数组的最后一个下标。

    例如:A=[2,3,1,1,4]A = [2,3,1,1,4]A=[2,3,1,1,4] 能够跳跃到最后一个下标,输出true

    A=[3,2,1,0,4]A = [3,2,1,0,4]A=[3,2,1,0,4] 不能跳跃到最后一个下标,输出false

    输入格式

    第一行输入一个正整数 n(1≤n≤500)n(1 leq n leq 500)n(1≤n≤500),接下来的一行 nnn 个整数,输入数组 AiA_iAi​。

    输出格式

    如果能跳到最后一个下标,输出true,否则输出false

    样例输入

    5
    2 0 2 0 1

    样例输出

    true

    贪心问题,因为只要跳到最后一格即可,所以只要从最后一格开始。

    从第一格跳到最后一格和从最后一格跳到第一格是相同的。

    如果从一个格子可以跳到最早出现的可以直接跳到最后一格的后面,

    那就可以先直接跳到这个格子,再到终点,

    如果不能达到,这个格子已经是最近的了,肯定不能跳到最后。

    找一个最早出现的可以直接跳到最后一格的,

    把这一格变成最后一格,

    重复是上面的过程,如果最后一格变为0,就为true,否则为false。

    #include<stdio.h>
    #define N 1020
    int a[N];
    int main()
    {
        int n,i;
        while(scanf("%d",&n)!=EOF)
        {
            for(i=0;i<n;i++)
                scanf("%d",&a[i]);
            n--; 
            for(i=0;i<n;i++)
            {
                if(a[i]>=n-i)
                {
                    n=i;
                    i=-1;
                }
            }
            if(n!=0)
                printf("false
    ");
            else 
                printf("true
    ");
        }
        return 0;
    }
    

    跳跃游戏二

    给定一个非负整数数组,假定你的初始位置为数组第一个下标。

    数组中的每个元素代表你在那个位置能够跳跃的最大长度。

    你的目标是到达最后一个下标,并且使用最少的跳跃次数。

    例如:

    A=[2,3,1,1,4]A = [2,3,1,1,4]A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为 222。(先跳跃 111 步,从下标 000 到 111,然后跳跃 333 步,到达最后一个下标。一共两次)

    输入格式

    第一行输入一个正整数 n(1≤n≤100)n(1 le n le 100)n(1≤n≤100) ,接下来的一行,输入 nnn 个整数,表示数组 AAA。

    输出格式

    最后输出最少的跳跃次数。

    样例输入

    5
    3 1 1 1 1

    样例输出

    2
    #include<stdio.h>
    #define N 120
    int a[N];
    int main()
    {
    	int n,i,ans;
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    		scanf("%d",&a[i]);
    	ans=0;
    	n--;
    	for(i=0;i<n;i++)
    	{
    		if(a[i]>=n-i)
    		{
    			n=i;
    			i=-1;
    			ans++;
    		}
    	}
    	printf("%d
    ",ans);
    	return 0;
    } 
  • 相关阅读:
    微信小程序Http高级封装 es6 promise
    Java 常用的几个lambda表达式
    关于jedis2.4以上版本的连接池配置,及工具类
    Elasticsearch5.0 安装问题
    Newtonsoft.Json 序列化器的重写
    MongoDB查询用法大全
    RabbitMQ基础概念详细介绍
    基于AOP的iOS用户操作引导框架设计
    Apache ActiveMQ实战(1)-基本安装配置与消息类型
    iOS图形手势识别框架SGGestureRecognizer
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10002937.html
Copyright © 2011-2022 走看看