当前位置: 首页 > news >正文

算法题-31,32

给你一个非负整数数组 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 , 所以永远不可能到达最后一个下标。

这道题也是一道经典的贪心算法,站在下标0每个位置nums[i]表示:从i最多可以往右跳nums[i]步,然后能不能达到最后一个位置。我们不需要真的跳,而是去维护一个变量记录当前能达到的最远位置。

核心思考就是,我们当前位置的下标是否大于我们维护的那个变量,如果下标大说明这个位置个根本到不了,如果小于我们维护的这个变量就更新最远的距离

具体的代码实现

/** * @param {number[]} nums * @return {boolean} */ var canJump = function(nums) { let maxReach = 0 for(let i = 0;i < nums.length;i++){ if(i > maxReach)return false maxReach = Math.max(maxReach,i + nums[i]) } return true };

我们分析一下两个示例

[2,3,1,1,4]

inums[i]maxReach
022
134
214
314
448

[3,2,1,0,4]

inums[i]maxReach
033
123
213
303
44❌ 到不了

我们在每次遍历都在选择当前位置能到达的最大距离,所以是贪心。

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。
每列的元素从上到下升序排列。

我拿到这一道题第一反应是使用二分法,对每一行二分,但是时间复杂度是O(m log n),突然发先右上角的元素有神奇的性质,它左边都比它小,它下面都比它大,这意味着一次比较就能排除一整行或一整列。

假设从:
row = 0
col = n - 1 // 右上角
开始。
每一步:
如果:matrix[row][col] === target,找到,返回 true
如果:matrix[row][col] > target,说明:这一列都比 target 大,往左走,col--
如果:matrix[row][col] < target,说明:这一行都比 target 小,往下走,row++

var searchMatrix = function(matrix, target) { const m = matrix.length const n = matrix[0].length let row = 0 let col = n - 1 while (row < m && col >= 0) { const val = matrix[row][col] if (val === target) return true if (val > target) { col-- } else { row++ } } return false };

时间复杂度,每一步:不是往下,就是往左,最多:m + n 步,所以:时间复杂度 O(m + n)

http://www.jsqmd.com/news/435006/

相关文章:

  • AI系统测试 vs 传统软件测试:当“断言思维”失效,测试工程师该如何转型?
  • 35岁测试开发的十字路口:从互联网到金融科技的转型思考
  • 干货来了:继续教育必备!千笔·降AIGC助手 VS 文途AI,降AI率网站
  • 材料革新破局碳中和,广州2026轻量化展解锁产业新赛道
  • 学电气自动化要考的证有哪些,为你详细说明 - myqiye
  • Seedance 2.0项目应用指南:从技术原理到工业级落地实践
  • 一条简单的 SQL 执行超过1000ms,纳尼?
  • 2026年3月输送带快速修补剂厂家推荐,精准检测与稳定性能深度解析 - 品牌鉴赏师
  • 互联网大厂面试:Java小白如何应对技术场景提问
  • 分析猫粮代加工认证厂家排名,有哪些品牌值得推荐 - 工业设备
  • 用数据说话 8个一键生成论文工具测评:本科生毕业论文写作全攻略
  • 2026年氮气浓度检测仪哪家强?这2家厂家技术实力碾压同行 - 品牌推荐大师1
  • 2026CRM盘点:六大主流CRM核心能力横向对比 - 毛毛鱼的夏天
  • 礼物店加盟服务费用多少,西安靠谱品牌大盘点 - 工业品网
  • 2026年3月奥迪康助听器品牌推荐,智能降噪与聆听效果深度解析 - 品牌鉴赏师
  • 用过才敢说! 降AI率软件 千笔·降AIGC助手 VS Checkjie,本科生专属更高效!
  • 2026舟山亲子游靠谱亲子酒店盘点,二天一夜旅游攻略全知道 - 工业品牌热点
  • 细聊西班牙CEDEU学院,国研提升学历,在成都选哪家靠谱? - mypinpai
  • 2026年中国遗产继承律师推荐:基于多场景需求评测,解决跨境与复杂资产继承痛点 - 品牌推荐
  • 客户管理系统解析:八大主流CRM谁能支撑企业数字化闭环? - 毛毛鱼的夏天
  • 自动焊接切割设备专业供应商哪家靠谱,南通华恒全国服务咋样? - 工业推荐榜
  • 2026CRM厂商对比:6大客户管理系统核心能力横向对比(选型必看) - 毛毛鱼的夏天
  • 2026口碑三维扫描仪厂家怎么选?启源视觉给出计量级答案 - 工业三维扫描仪评测
  • 聊聊达州咖啡师西点培训推荐,哪家费用合理 - myqiye
  • 基于TMS320F28335的永磁同步电机矢量控制源程序实现
  • “国际HPV知晓日”专题:男女同防同治,守护健康防线 - 速递信息
  • SCI论文查AI率系统:Turnitin系统和IThenticate系统对比!
  • 2026年十大人气CRM系统深度测评:功能、适配性全解析,精准匹配企业需求 - 毛毛鱼的夏天
  • 基于TMS320F28035的太阳能MPPT逆变器程序实现
  • 2026客户管理系统对比:中小微到企业级数字化管理全维度横评 - 毛毛鱼的夏天