【c++每天一题】跳跃游戏
题目
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。
示例 1:
输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。
示例 2:
输入:nums = [3,2,1,0,4] 输出:false 解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
提示:
1 <= nums.length <= 1040 <= nums[i] <= 105
方法一:深搜
我们遍历到一个节点分别以n,n-1,……,1步往前走,碰到0就结束分支。如果有分支走到最后一个节点说明走到了,输出yes。所有分支都结束了但没有分支到最后一个节点,输出no。
#include<iostream>
using namespace std;
bool flag=false;
int find(int a[],int n,int x){for(int i=0;i<n;i++){if(a[i]==x){return 1;}}return 0;
}
int dfs(int a[],int x,int n){if(a[x]==0){return 0;}if(x==n-1){flag=true;return 0;}for(int i=a[x];i>=1;i--){dfs(a,x+i,n);}}
int main(){freopen("jump.in","r",stdin);freopen("jump.out","w",stdout);int a[10000];int n,p=0;cin>>n;for(int i=0;i<n;i++){cin>>a[i];}if(!find(a,n,0)){cout<<"yes";return 0;}dfs(a,0,n);if(flag==true){cout<<"yes";}else{cout<<"no";}return 0;
}
方法二:贪心
#include<bits/stdc++.h>
using namespace std;
int main(){int n,a[100],step=0;cin>>n;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<=step;i++){step=max(a[i]+i,step);if(step>=n){cout<<"yes";break;}else{cout<<"no";break;}}return 0;
}
相关文章:
【c++每天一题】跳跃游戏
题目 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 示例 1࿱…...
【C# 中抓取包含多个屏幕内容的整个桌面】
要在 C# 中抓取包含多个屏幕内容的整个桌面,可以使用 .NET Framework 或者其他第三方库来实现。一种常见的方法是使用 System.Windows.Forms 和 System.Drawing 命名空间中的类来实现屏幕截图。以下是一个示例代码,演示如何抓取包含多个屏幕内容的整个桌…...
数据库管理-第152期 Oracle Vector DB AI-04(20240220)
数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引(默认) 索引(高级)3 EMBEDDINGSSQL EMBE…...
uniapp app端水印组件封装 一次引入版
直接上代码 <template><view><canvas canvas-id"myCanvas"style"width: 100vw; height: 100vh;opacity: 0;position: fixed;top: -1000px;"></canvas></view> </template><script>export default {name: "…...
最新Unity游戏主程进阶学习大纲(2个月)
过完年了,很多同学开始重新规划自己的职业方向,找更好的机会,准备升职或加薪。今天给那些工作了1~5年的开发者梳理”游戏开发客户端主程”的学习大纲,帮助大家做好面试准备。适合Unity客户端开发者。进阶主程其实就是从固定的几个方面搭建好完整的知识体…...
NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能! 【官网地址】:http://www.redisant.cn/nosql 介绍 直观的用户界面 从单一应用程序中同…...
基于Spring Boot的多级缓存系统设计
在构建大规模应用时,缓存系统是提高性能的关键因素之一。为了更有效地利用缓存,我们可以设计一个基于Spring Boot的多级缓存系统,结合本地内存缓存(如Caffeine)和分布式缓存(如Redis)。以下是一…...
k8s-配置与存储-配置管理
文章目录 一、配置存储1.1 ConfigMap1.1.1.基于文件夹的创建方式1.1.2指定文件的创建方式1.1.3 配置文件创建configmap 1.2 Secret1.2.1Secret的应用与Docker仓库 Secret设置1. Kubernetes 中的 Secrets:创建 Secret 示例:将 Secret 挂载到 Pod 中的示例…...
c语言实现bellman-ford算法
下面是使用C语言实现Bellman-Ford算法的示例代码。Bellman-Ford算法用于在带权重的图中找到从单个源点到所有其他顶点的最短路径,它也能处理图中包含负权重边的情况。 #include <stdio.h> #include <stdlib.h> #include <limits.h>// 定义边的结构 struct …...
socket与rpc的区别
如今的游戏开发,不搞个跨服玩法都不好意思说在做游戏了(当然,也跟游戏类型有关,一些轻度休闲游戏可以排除在外)。跨服玩法的设计,可以进一步激发玩家追求高战力的虚荣心,也可以汇聚玩家数量&…...
10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝
用途:个人学习笔记,有所借鉴,欢迎指正! 背景: 主要针对内网主机中的 域控提权漏洞,包含漏洞探针和漏洞复现利用。 1、横向移动-系统漏洞-CVE-2017-0146(ms17-010,永恒之蓝࿰…...
代码随想录算法训练营第三八天 | 动态规划
目录 动态规划基础斐波那契数爬楼梯使用最小花费爬楼梯 LeetCode 509. 斐波那契数 LeetCode 70. 爬楼梯 LeetCode 746. 使用最小花费爬楼梯 动态规划基础 Dynamic Programming (DP) 如果某一问题有很多重叠子问题,使用动态规划是最有效的。 动态规划中每一个状态…...
【ubuntu2004安装N卡驱动】
软硬件环境 硬件:联想notebook16,显卡4060laptop 软件: ubuntu20.04 驱动安装成功的版本:NVIDIA-Linux-x86_64-535.146.02.run 使用默认的驱动安装,没用原因如下 让手动安装。 手动安装 环境准备: sudo …...
使用 Docker 安装 Kibana 8.4.3
使用 Docker 安装 Kibana 8.4.3 一. 安装启动 Kibana 8.4.3二. 简单使用2.1 向 Elasticsearch 发送请求2.2 搜索2.3 整体页面 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 安装k…...
基于python社交网络大数据分析系统的设计与实现
项目:基于python社交网络大数据分析系统的设计与实现 摘 要 社交网络大数据分析系统是一种能自动从网络上收集信息的工具,可根据用户的需求定向采集特定数据信息的工具,本项目通过研究爬取微博网来实现社交网络大数据分析系统功能。对于采集…...
【设计模式】23种设计模式笔记
设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法,和大量抽象的方法,具体的方法是为外界提供服务的点,具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A,希望A的a方法被修饰 …...
编程笔记 Golang基础 009 标识符和关键字
编程笔记 Golang基础 009 标识符和关键字 一、标识符二、标识符分类(一)空白标识符(又称下划线 _)(二)预声明标识符(三)唯一标识符(四)导出标识符 三、关键字…...
vue3中mockjs模拟获取数据
开发项目的时候,如果后端接口没有出来,前端工程师也不必非得等接口出来才进行下步开发。可以使用mock.js来模拟接口数据,以下就是使用vue3设置hook函数来封装axios请求,配合mock.js来实现的代码,mock的官网 Mock.js 一…...
element ui 添加自定义方法
今天在修改 el-table 源码过程中遇到一个头大的问题,原本修改编译后,将 element的子目录lib下的文件复制到项目的响应目录里就可以了,但是,这次不知为何,编译老是出问题,实在没有办法,我就直接修…...
Hive UDF
当Hive提供的内置函数不能满足查询需求时,用户可以根据自己业务编写自定义函数(User Defined Functions, UDF), 然后在HiveQL中调用。 例如有这样一个需求:为了保护用户隐私,当查询数据的时候,需要将用户手机号的中间…...
SEO 和网站推广有什么区别_如何判断一个网站的 SEO 质量
SEO 和网站推广有什么区别 在数字营销的广阔天地中,SEO(搜索引擎优化)和网站推广是两个常被提及的概念。它们虽然都旨在提升网站的流量和知名度,但实际上,它们之间有着显著的区别。理解这两者的异同,对于有…...
MinIO实战指南:Linux环境下的部署、配置与防火墙调优
1. MinIO是什么?为什么选择它? 如果你正在寻找一个轻量级、高性能的对象存储解决方案,MinIO绝对值得一试。作为一个开源的分布式对象存储系统,它兼容Amazon S3 API,这意味着你可以用极低的成本搭建私有云存储服务。我在…...
事件驱动:为AI原生应用领域注入新活力
事件驱动:为AI原生应用领域注入新活力关键词:事件驱动、AI原生应用、事件流、实时响应、异步架构、微服务、事件溯源摘要:本文将带你走进「事件驱动」与「AI原生应用」的交叉领域,通过生活案例、技术原理解析和实战代码࿰…...
从脉冲到CAN总线:一文搞懂Emm42 V5.0步进闭环驱动的四种控制方式(含Arduino/PLC接线示例)
从脉冲到CAN总线:Emm42 V5.0步进闭环驱动的四种控制方式深度解析 在工业自动化和嵌入式开发领域,步进电机的精确控制一直是工程师们关注的重点。Emm42 V5.0步进闭环驱动器作为新一代高性能驱动解决方案,凭借其丰富的控制接口和先进的FOC矢量…...
BLE HID库:嵌入式设备实现HID-over-GATT的轻量级方案
1. BLE_HID 库概述:面向嵌入式设备的 HID-over-GATT 实现BLE_HID 是一个专为资源受限嵌入式平台设计的轻量级开源库,其核心目标是将传统 USB HID(Human Interface Device)协议栈无缝迁移至 Bluetooth Low Energy(BLE&a…...
大模型“语言翻译官“Token深度解析:从人类语言到机器密码的惊险旅程!
本文深入浅出地介绍了大模型如何通过Token(词元)这一关键组件将人类自然语言翻译成机器能理解的数字密码。文章从Token的来源、生成全过程(分词、数字化映射、向量化、矩阵运算、采样解码)以及四种主流分词方案(BPE、W…...
智慧微电网设计模拟:最优光储配置一键生成
在新能源渗透率持续提升的背景下,智慧微电网作为分布式能源利用的核心载体,其光储配置的合理性直接决定能源利用效率与经济效益。传统配置设计依赖人工测算,存在耗时久、参数匹配度低、优化空间有限等问题,而智慧微电网设计模拟系…...
关于准备智慧校园建设专项资金申报材料的参考清单
✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…...
解锁论文写作新姿势:书匠策AI,你的期刊论文智囊团
在学术的浩瀚海洋中,每一位探索者都渴望拥有一盏明灯,照亮前行的道路。对于广大教育领域的学者、研究生乃至本科生而言,撰写一篇高质量的期刊论文不仅是学术能力的体现,更是通往更高学术殿堂的钥匙。然而,面对繁琐的选…...
告别截图贴图!用MATLAB的text函数+LaTeX,在图像任意位置添加公式注释(含α, β, ∑等符号)
科研图像标注革命:MATLABLaTeX实现动态公式嵌入全攻略 在学术论文与科研报告中,数据可视化图表的质量直接影响研究成果的呈现效果。传统方式中,研究者往往需要先导出图像,再通过第三方软件(如Photoshop或PPT࿰…...
