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

Day31 || 122.买卖股票的最佳时机 II、55. 跳跃游戏、 45.跳跃游戏II 、1005.K次取反后最大化的数组和

122.买卖股票的最佳时机 II

题目链接:力扣题目链接

思路:因为是求虽大利润完全可以假设知道第二天涨前一天买入即可,就是求两天只差大于0 的和。

55. 跳跃游戏

题目链接:力扣题目链接

思路:应该从后往前循环判断,只要能在当前位置跳跃到队尾,就可以把队尾更新到当前位置,然后继续循环。

class Solution {boolean res = false;public boolean canJump(int[] nums) {int lastPos = nums.length - 1;for(int i=nums.length - 2;i>=0;i--){if(i+nums[i]>=lastPos){lastPos = i;}}return lastPos == 0;}
}

45.跳跃游戏II

题目链接:力扣题目链接

思路:一开始的想法是动态规划,但是动态规划会超时(不是不能用只是时间复杂度高会超时)。只能使用贪心算法。要计算当前范围能到哪里,另一个就是当前范围跳到的地方下一次最远能到哪里。也就是这里需要统计两个覆盖范围,当前这一步的最大覆盖和下一步最大覆盖。如果移动下标达到了当前这一步的最大覆盖最远距离了,还没有到终点的话,那么就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。

class Solution {public int jump(int[] nums) {int time=0;int currentEnd = 0; // 当前跳跃的最远边界int farthest = 0;for (int i = 0; i < nums.length - 1; i++) {// 更新能够跳到的最远位置farthest = Math.max(farthest, i + nums[i]);// 当我们到达了当前跳跃的边界if (i == currentEnd) {time++; // 增加跳跃次数currentEnd = farthest; // 更新当前边界为最远位置// 如果当前边界已经超过或到达终点if (currentEnd >= nums.length - 1) {break;}}}return time;}
}

1005.K次取反后最大化的数组和

题目链接:力扣题目链接

思路:让绝对值大的负数变为正数,当前数值达到最大,整体最优:整个数组和达到最大。那么如果将负数都转变为正数了,只找数值最小的正整数进行反转。

时间:2h

http://www.lryc.cn/news/461705.html

相关文章:

  • 【uniapp】打包成H5并发布
  • Position Embedding总结和Pytorch实现
  • 【AIF-C01认证】亚马逊云科技生成式 AI 认证正式上线啦
  • C++ 素数的筛选法与穷举法
  • Spring Boot异步任务、任务调度与异步请求线程池的使用及原理
  • Java爬虫之使用Selenium WebDriver 爬取数据
  • MyBatis 中updateByPrimaryKey和updateByPrimaryKeySelective区别
  • JavaScript下载文件(简单模式、跨域问题、文件压缩)
  • Django 定义使用模型,并添加数据
  • 联名物料常泄漏?一端叠满“安全buff”
  • Flutter UI组件库(JUI)
  • 国外电商系统开发-运维系统远程文件
  • 4. Node.js Path模块
  • 重构长方法之分解条件表达式
  • 蚁群算法养老服务人员智能调度系统
  • java使用 IDEA自动补全功能 AI 插件
  • 【ShuQiHere】 AI与自我意识:能否创造真正的自觉机器人?
  • 【Linux 从基础到进阶】CPU性能调优与监控
  • Centos基线自动化检查脚本
  • OpenCV答题卡识别
  • 通用数据库对象设计
  • Java基础12-特殊文件和日志技术
  • 2.4 STM32启动过程
  • rm: cannot remove: Device or resource busy 解决方案
  • 2024年的5款AI写作工具,你用过几个?
  • 泛癌热门靶点TROP2及研究工具试剂
  • 2848. 与车相交的点
  • 第1节 入门
  • 四数之和(medium)08
  • TypeScript中 interface接口 type关键字 enum枚举类型