LeetCode 45. 跳跃游戏 II(贪心/BFS,难)

文章目录

    • 1. 题目
    • 2. 解题
      • 2.1 贪心
      • 2.2 BFS

1. 题目

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置假设你总是可以到达数组的最后一个位置。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/jump-game-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

类似题目 LeetCode 55 跳跃游戏

2. 解题

相关题目:
LeetCode 55. 跳跃游戏(贪心)
LeetCode 1306. 跳跃游戏 III(广度优先搜索BFS)
LeetCode 1345. 跳跃游戏 IV(BFS)
LeetCode 1340. 跳跃游戏 V(DP)
LeetCode LCP 09. 最小跳跃次数

2.1 贪心

  • 当前可达的最远下标设一个标记 reach
  • 在到达 reach 的过程中,不断更新 maxs(可到达的最远下标)
  • 当到达 reach 时,step+1,reach 更新为最大的 maxs
    在这里插入图片描述
class Solution {
public:int jump(vector<int>& nums) {int steps = 0, i, reach = 0, maxs = 0;for(i = 0; i < nums.size()-1; ++i){maxs = max(maxs,nums[i]+i);if(i == reach){++steps;reach = maxs;}}return steps;}
};

在这里插入图片描述

2.2 BFS

在这里插入图片描述

class Solution {
public:int jump(vector<int>& nums) {queue<int> q;//idxint i, size, step = 0, tp, maxIdx = 0, nextIdx, n = nums.size();q.push(0);while(!q.empty()){size = q.size();while(size--){tp = q.front();if(tp >= n-1)return step;nextIdx = min(n-1,max(maxIdx, tp+nums[tp]));q.pop();for(i = maxIdx+1; i <= nextIdx; ++i)q.push(i);maxIdx = nextIdx;}step++;}return step;}
};

16 ms 8.4 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度剖析开源分布式监控CAT

CAT&#xff08;Central Application Tracking&#xff09;是一个实时和接近全量的监控系统&#xff0c;它侧重于对Java应用的监控&#xff0c;基本接入了美团上海侧所有核心应用。目前在中间件&#xff08;MVC、RPC、数据库、缓存等&#xff09;框架中得到广泛应用&#xff0c…

论文浅尝 | ​ADRL:一个基于注意力机制的知识图谱深度强化学习框架

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士。来源&#xff1a;Knowledge-Based Systems 197 (2020) 105910链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0957417419306839概要与动机知识图谱推理是图谱构建的关键技术之一&#xff0…

新年第二弹|卖萌屋私藏书单大公开

夕本尊 &夕小瑶 推荐作为一个互联网人&#xff0c;不仅要懂技术&#xff0c;还应该了解行业的基本运作原理。这其中一个重要的问题是&#xff1a;为什么互联网产品&#xff08;基本&#xff09;都是免费的&#xff0c;甚至纷纷给用户送钱&#xff0c;它们却能有这么强的盈利…

LeetCode 437. 路径总和 III(双重递归)

1. 题目 给定一个二叉树&#xff0c;它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点到子节点&#xff09;。 二叉树不超过…

论文浅尝 - ESWA | 知识图谱的自动扩充方法

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士。来源&#xff1a;ESWA141(2020)链接&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S0957417419306839为了使计算机理解人类语言&#xff0c;并且实现推理&#xff0c;人类知识需要被表示并储存…

美团大脑:知识图谱的建模方法及其应用

作为人工智能时代最重要的知识表示方式之一&#xff0c;知识图谱能够打破不同场景下的数据隔离&#xff0c;为搜索、推荐、问答、解释与决策等应用提供基础支撑。美团大脑围绕吃喝玩乐等多种场景&#xff0c;构建了生活娱乐领域超大规模的知识图谱&#xff0c;为用户和商家建立…

全栈深度学习第2期: 开发套件与工具篇

一起追剧鸭简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目&#xff0c;通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。1. Berkeley深度学习追剧群目前已有1000小伙伴加入&#xff0c;公众号后台回复口令 深度学习追剧 入群…

LeetCode 700. 二叉搜索树中的搜索

1. 题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 NULL。 2. 解题 class Solution {//递归写法TreeNode *ans NULL; public:TreeNode* searchB…

iOS系统中导航栏的转场解决方案与最佳实践

背景 目前&#xff0c;开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案&#xff0c;但对于历史包袱沉重的美团 App 而言&#xff0c;这些解决方案并不完美。有的方案不能满足复杂的页面跳转场景&#xff0c;有的方案迁移成本较大&#xff0c;为此我们提出了一套解决方案…

论文浅尝 - WSDM20 | 基于弱监督及逐步推理的多关系知识图谱问答

论文笔记整理&#xff1a;刘晓臻&#xff0c;东南大学计算机科学与工程学院本科生。来源&#xff1a;WSDM ’20链接&#xff1a;https://dl.acm.org/doi/abs/10.1145/3336191.3371812动机知识图谱问答(KG-QA)系统大多包含两个步骤&#xff1a;链接问题中的topic entity到KG&…

算法工程师的落地能力具体指的是什么?

文 | 桔了个仔知乎本文已获作者授权&#xff0c;禁止二次转载大家好&#xff0c;这里是桔了个仔&#xff0c;目前是一名Data Scientist(不太想翻译成数据科学家&#xff0c;毕竟感觉自己就是个工程师&#xff09;&#xff0c;过去几年在做基于机器学习的风控与合规系统&#xf…

Android官方开发文档Training系列课程中文版:网络操作之网络管理

原文地址&#xff1a;http://android.xsoftlab.net/training/basics/network-ops/managing.html 这节课将会学习如何对网络资源的使用情况拥有更细粒度的控制力。如果应用程序经常执行大量的网络操作&#xff0c;那么程序应当提供一项设置&#xff0c;以便用户可以控制应用的数…

LeetCode 728. 自除数

1. 题目 自除数 是指可以被它包含的每一位数除尽的数。 例如&#xff0c;128 是一个自除数&#xff0c;因为 128 % 1 0&#xff0c;128 % 2 0&#xff0c;128 % 8 0。 还有&#xff0c;自除数不允许包含 0 。 给定上边界和下边界数字&#xff0c;输出一个列表&#xff0…

论文浅尝 - AAAI2020 | 通过句子级语义匹配和答案位置推断改善问题生成

论文笔记整理&#xff1a;王春培&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/pdf/1912.00879.pdf动机本文主要聚焦问答系统&#xff08;Q&A&#xff09;的反问题---问题生成&#xff08;Question Generation&#xff0c;Q&G&#xff09;。问题生成的…

美团深度学习系统的工程实践

背景 深度学习作为AI时代的核心技术&#xff0c;已经被应用于多个场景。在系统设计层面&#xff0c;由于其具有计算密集型的特性&#xff0c;所以与传统的机器学习算法在工程实践过程中存在诸多的不同。本文将介绍美团平台在应用深度学习技术的过程中&#xff0c;相关系统设计的…

一个程序员的理财观

文 | 王喆你好&#xff0c;我叫王喆&#xff0c;看过我技术文章的朋友知道&#xff0c;我是一个搞推荐系统的机器学习工程师&#xff0c;不熟悉的同学也没关系&#xff0c;就当我是一名普普通通的程序员就好。但今天我们不谈技术&#xff0c;也不谈996这些烦人的话题&#xff0…

2020年最值得收藏的60个AI开源工具

原本链接:https://www.infoq.cn/article/2uabiqaxicqifhqikeqw 本文&#xff0c;InfoQ梳理了60个2019年至今GitHub上热门的开源工具&#xff0c;献给那些对新征程满怀期待的开发者们。Flair (顶级 NLP 库&#xff09;2018 年是 NLP 井喷的一年。像 ELMo 和谷歌 BERT 这样的库层…

LeetCode 942. 增减字符串匹配

1. 题目 给定只含 “I”&#xff08;增大&#xff09;或 “D”&#xff08;减小&#xff09;的字符串 S &#xff0c;令 N S.length。 返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i 0, …, N-1&#xff0c;都有&#xff1a; 如果 S[i] "I"&#xff0c;那么…

Netty堆外内存泄露排查盛宴

导读 Netty 是一个异步事件驱动的网络通信层框架&#xff0c;用于快速开发高可用高性能的服务端网络框架与客户端程序&#xff0c;它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。 Netty 底层基于 JDK 的 NIO&#xff0c;我们为什么不直接基于 JDK 的 NIO 或者其他NIO框架…

论文浅尝 - ESWC2020 | YAGO 4: A Reason-able Knowledge Base

论文笔记整理&#xff1a;叶群&#xff0c;浙江大学计算机学院&#xff0c;知识图谱、NLP方向。会议&#xff1a;ESWC 2020链接&#xff1a;https://suchanek.name/work/publications/eswc-2020-yago.pdfIntroductionYAGO是世界上最大的链接数据库之一&#xff0c;由德国马普研…