当前位置: 首页 > 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.xdnf.cn/news/263917.html

相关文章:

  • 在pycharm profession 2020.3将.py程序使用pyinstaller打包成exe
  • Windows 中使用dockers创建指定java web 为镜像和运行容器
  • C++ STL vector高级特性与实战技巧
  • AVFormatContext 再分析零
  • 在Windows系统中使用Docker发布镜像到镜像仓库
  • 用PyTorch搭建卷积神经网络实现MNIST手写数字识别
  • 生成式 AI 的工作原理
  • Elasticsearch 中的索引模板:如何使用可组合模板
  • 【在Spring Boot中集成Redis】
  • 【赵渝强老师】TiDB生态圈组件
  • 3D人物关系图开发实战:Three.js实现自动旋转可视化图谱(附完整代码)
  • 人工智能助力工业制造:迈向智能制造的未来
  • 别样健康养生之道
  • AI 与生物技术的融合:开启精准医疗的新纪元
  • ros2 humble 控制真实机械臂(以lerobot为例)
  • 一种基于重建前检测的实孔径雷达实时角超分辨方法——论文阅读
  • **Java面试大冒险:谢飞机的幽默与技术碰撞记**
  • 做响应式布局网页多简单
  • AI生成视频检测方法及其相关研究
  • WebRTC 服务器之Janus概述和环境搭建
  • Spring MVC入门
  • 第12章:精神力的禁忌边界
  • 强化学习--3.值函数的方法(贝尔曼方程)
  • 直播推流拉流Token验证流程(直播服务器:SRS,验证服务器:EGGS(nodejs))
  • 智能决策支持系统的系统结构:四库架构与融合范式
  • k8s笔记——kubebuilder工作流程
  • 嵌入式硬件篇---STM32F103C8T6STM32F103RCT6
  • Flink 的状态机制
  • Qt中实现工厂模式
  • 音视频开源项目列表