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

【LeetCode Hot100】贪心篇

前言

        本文用于整理LeetCode Hot100中题目解答,因题目比较简单且更多是为了面试快速写出正确思路,只做简单题意解读和一句话题解方便记忆。但代码会全部给出,方便大家整理代码思路。


121. 买卖股票的最佳时机

一句话题意

        给定一个数组,问数组中后面的值减前面的值的最大差值。

一句话题解

        每个值都要去和他后面最大的值做差,贪心。

class Solution {public int maxProfit(int[] prices) {int ans=0;int mx=0;for(int i=prices.length-1;i>=0;i--){mx=Math.max(mx,prices[i]);ans=Math.max(ans,mx-prices[i]);}return ans;}
}

55. 跳跃游戏

一句话题意

        初始在1号点,数组上的数值为可以移动的距离,问是否能到达数组末端。

一句话题解

        贪心,类似线段覆盖,把当前可以走的最大值拿着看之后能不能走就行。

class Solution {public boolean canJump(int[] nums) {int mx=0;for(int i=0;i<nums.length;i++){if(i>mx)break;if(i==nums.length-1)return true;mx = Math.max(mx,i+nums[i]);}return false;}
}

45. 跳跃游戏 II

一句话题意

        跟上个题意类似,就是需要额外求最少跳跃次数。

一句话题解

        将每次能到达的最远位置保存和下一次能到达的最大距离保存,当到达这次的最远距离了,就让ans++,更新最远距离。

class Solution {public int jump(int[] nums) {int ans=0;int end=0;int mx=0;for(int i=0;i<nums.length - 1;i++){mx=Math.max(mx,nums[i]+i);if(i==end){ans++;end=mx;}}return ans;}
}

763. 划分字母区间

一句话题意

        给定一个字符串,问最多可以分割成多少个字符串,保证每个字符只出现在一个字符串内。

一句话题解

        先求一下每个字符最后出现的位置,然后类似上个题目的解决方法,就是拿每个的最后的位置,到达最后的哪个位置了意味着就要分割了,然后再继续向下求即可。

class Solution {public List<Integer> partitionLabels(String s) {int[] c=new int[26];for(int i=0;i<s.length();i++){c[s.charAt(i)-'a']=i;}List<Integer> ans = new ArrayList<>();int mn=0;int mx=0;for(int i=0;i<s.length();i++){mx=Math.max(mx,c[s.charAt(i)-'a']);if(mx==i){ans.add(mx-mn+1);mn=mx+1;}}return ans;}
}

http://www.dtcms.com/a/170495.html

相关文章:

  • Python基本语法(函数partial)
  • 生成式 AI 的优势
  • AI 大模型常见面试题(及内容解析)
  • cpp细碎知识点
  • asp.net客户管理系统批量客户信息上传系统客户跟单系统crm
  • 给QCustomPlot添加一个QScrollBar滚动条、限制缩放范围、自动设置大小和右边栏垂直缩放
  • 基于springboot的金院银行厅预约系统的设计及实现(源码+lw+部署文档+讲解),源码可白嫖!
  • ubuntu使用apt安装软件
  • 【2025软考高级架构师】——数据库系统(10)
  • 用Ensaio下载GIS数据
  • 论微服务架构及其应用
  • C++ STL vector容器详解:从原理到实践
  • # 基于词袋模型(BoW)的猫狗图像分类实践
  • 项目管理进阶:深入学习企业软件研发管理体系架构方案【附全文阅读】
  • 基于 JSP 和 Servlet 的数字信息分析小应用
  • 算法笔记。质数筛算法
  • 琴生不等式 (Jensen‘s Inequality)
  • 【quantity】7 角度单位模块(angle.rs)
  • 论系统安全架构设计及其应用
  • Vibe Coding 新时代:AI 辅助编程完全指南
  • 从融智学视域快速回顾世界历史和主要语言文字最初历史证据(列表对照分析比较)
  • JavaScript中的AES加密与解密:原理、代码与实战
  • 一篇文章看懂web服务
  • C与指针4——指针
  • 04 基于 STM32 的时钟展示程序
  • js单调栈解题模板
  • [UVM]UVM中reg_map的作用及多个rem_map的使用案例
  • QNAP Duplicati 备份 123云盘
  • Learning vtkjs之Cutter
  • Spring AI 实战:第一章、Spring AI入门之DeepSeek调用