计蒜客-跳跃游戏

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

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

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

例如: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] 不能跳跃到最后一个下标,输出false

输入格式

第一行输入一个正整数 n(1 \leq n \leq 500)n(1n500),接下来的一行 nn 个整数,输入数组 A_iAi

输出格式

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

样例输入
5
2 0 2 0 1
样例输出
true
解题思路

这是一道贪心题(感觉不像=。=),题目说只是跳跃的最大长度,因此可能跳到的地方为0,但是前面可以是不为0的,所以到底过不过不能只是考虑跳到的地方是不是0,要考虑前面的情况,因此应该用另一个数组去做标记,判断是不是通

#include<bits/stdc++.h>
using namespace std;
int a[1005],b[1005];
int main(){
    int n;
    while(cin>>n){
        memset(b,0,sizeof(b));
        int i,j;
        for(i = 0;i < n;i++){
            cin >> a[i];
	} 
        b[0] = 1;
        for(i = 0;i < n;i++){
            int k = i;
            if(b[i]){   //如果没有断路就继续
            	for(j = i;j <= k + a[i];j++){
                	b[j] = 1;
            	}
            }
            else{   //如果出现断路 就证明根本跳不到
                cout<<"false"<<endl;
                return 0;
            }
        }
        cout<<"true"<<endl;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为您设计一个简单的跳跃游戏。首先,我们需要安装Pygame库。可以使用以下命令在命令行中安装: ``` pip install pygame ``` 接下来,我们需要创建一个窗口并显示游戏界面。请参考以下代码: ```python import pygame # 初始化Pygame pygame.init() # 设置窗口大小 screen_width = 500 screen_height = 500 screen = pygame.display.set_mode((screen_width, screen_height)) # 设置窗口标题 pygame.display.set_caption("Jump Game") # 游戏主循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 更新窗口 pygame.display.update() # 退出Pygame pygame.quit() ``` 现在我们已经有了一个空白的窗口,接下来我们需要添加角色和障碍物。请参考以下代码: ```python import pygame import random # 初始化Pygame pygame.init() # 设置窗口大小 screen_width = 500 screen_height = 500 screen = pygame.display.set_mode((screen_width, screen_height)) # 设置窗口标题 pygame.display.set_caption("Jump Game") # 加载角色图片 player_image = pygame.image.load("player.png") player_x = 50 player_y = 400 player_speed = 5 # 加载障碍物图片 obstacle_image = pygame.image.load("obstacle.png") obstacle_x = 500 obstacle_y = 400 obstacle_speed = 3 # 游戏主循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 移动角色 keys = pygame.key.get_pressed() if keys[pygame.K_SPACE]: player_y -= player_speed * 2 else: player_y += player_speed # 移动障碍物 obstacle_x -= obstacle_speed if obstacle_x < 0: obstacle_x = 500 obstacle_y = random.randint(200, 400) # 绘制角色和障碍物 screen.blit(player_image, (player_x, player_y)) screen.blit(obstacle_image, (obstacle_x, obstacle_y)) # 更新窗口 pygame.display.update() # 退出Pygame pygame.quit() ``` 现在我们已经有了一个可以跳跃并躲避障碍物的游戏了。接下来可以添加得分系统、音效等元素来丰富游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值