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

Day28 | 买卖股票的最佳时机 II、跳跃游戏、跳跃游戏 Ⅱ、K次取反后最大化的数组和

买卖股票的最佳时机 II

[https://programmercarl.com/0122.买卖股票的最佳时机II.html#算法公开课]

解法

class Solution {
public:int maxProfit(vector<int>& prices) {int res = 0;int sub;for(int i = 1;i < prices.size();i++){sub = prices[i] - prices[i - 1];if(sub > 0) res+= sub;}return res;}
};

跳跃游戏

[https://programmercarl.com/0055.跳跃游戏.html]

解法

for循环的终止条件不一定是固定的,可以是动态变化的,比如这里,使用cover作为终止条件,而cover在变化,刚好符合“跳到最大可覆盖范围的语义”。

class Solution {
public:bool canJump(vector<int>& nums) {int cover = 0;if(nums.size() == 1) return true;for(int i = 0;i <= cover;i++){cover = max(cover,i + nums[i]);if(cover >= nums.size() - 1) return true;}return false;}
};

跳跃游戏 Ⅱ

[https://programmercarl.com/0045.跳跃游戏II.html]

解法

用cur来指示当前的最远位置,next表示接下来最远能跳到的位置,当i == cur的时候,说明需要更新cur 了,也就是再跳一步,res++,cur更新成next,然后判断,如果cur大于序列范围了,说明就可以跳到终点了。贪心贪的是每次都跳最大的距离。

class Solution {
public:int jump(vector<int>& nums) {if (nums.size() == 1) return 0;int cur = 0;int res = 0;int next = 0;for(int i = 0;i < nums.size();i++){next = max(next,nums[i] + i);if(i == cur){res++;cur = next;if(cur >= nums.size() - 1) break;}}return res;}
};

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

[https://programmercarl.com/1005.K次取反后最大化的数组和.html]

解法

先一个for循环把负的全变成正的,然后如果有剩余的次数,在把0反复变。如果没0,那就把绝对值最小的反复变

class Solution {
static bool cmp(int a, int b) {return abs(a) > abs(b);
}
public:int largestSumAfterKNegations(vector<int>& nums, int k) {sort(nums.begin(),nums.end(),cmp);int i = 0;for(int j = 0;j < nums.size();j++){if(nums[j] < 0 && k > 0){nums[j] = -nums[j];k--;}}while(k > 0){if(nums[i] == 0) k--;else{nums[nums.size() - 1] = -nums[nums.size() - 1];k--;}}int res = 0;for(int &p:nums){res += p;}return res;}
};
http://www.jsqmd.com/news/665858/

相关文章:

  • Godot-MCP:AI驱动的游戏开发效率解决方案,开发周期缩短68%
  • MAI-UI-8B API调用教程:用Python轻松集成GUI智能体能力
  • 如何快速掌握Switch大气层系统:从零开始的完整教程指南
  • 从Arduino条件控制到智能小车:逻辑与比较运算符的实战避坑指南
  • BilldDesk终极指南:30分钟快速搭建免费私有化远程桌面控制平台
  • 避坑指南:SimpleFOC V2.2.2库的双电机控制Bug,我为什么退回了V2.1.1版本
  • Python多进程实战:从apply阻塞到apply_async异步的性能跃迁
  • 从‘Hello World’到图像处理:用Matlab的if-elseif-else实现一个简易的图片分类器(附完整代码)
  • 终极免费PCB查看器:如何在5分钟内掌握OpenBoardView的核心功能
  • 手把手教你用STM32CubeIDE移植Vector CCP驱动,实现与INCA的标定通信(附避坑指南)
  • 如何用Fan Control实现Windows风扇智能控制:完整配置指南
  • 泉盛UV-K5/K6终极自定义固件指南:解锁专业对讲机的隐藏潜能
  • ESP32音频播放终极指南:用I2S接口实现多格式音频解码
  • 5分钟掌握Applite:macOS上最简单免费的Homebrew图形界面应用商店
  • STM32F103新手避坑:用TIM2的PWM驱动MG996舵机,从代码到转动的保姆级教程
  • LXMusic音源终极配置指南:从零到高手快速上手
  • 终极Galgame翻译指南:TsubakiTranslator让你的日文游戏无障碍畅玩
  • ChanVis:基于TradingView的开源缠论量化分析框架
  • ControlNet-v1-1 FP16模型:5分钟学会在普通电脑上玩转AI图像控制
  • 如何让2008年MacBook Pro也能运行最新macOS?揭秘开源神器OCLP的4大核心价值
  • 如何免费解锁被锁的iPhone?applera1n激活锁绕过终极指南
  • 你的STM32设备有‘名字’吗?基于LwIP的HostName配置与局域网发现实战(含FreeRTOS适配)
  • OpenUtau完整指南:免费开源虚拟歌手编辑器的实用功能解析
  • 如何通过OpenCore Legacy Patcher让旧Mac焕发新生:突破限制的创新解决方案
  • 告别理论!实测XDMA读写DDR性能:在Zynq-7100上实现Host与FPGA间数据搬运的极限优化
  • Nunchaku-FLUX.1-dev开发者部署手册:supervisor服务管理与日志排查
  • ISE工程迁移避坑大全:从UCF到XDC约束转换,我用Excel搞定了90%的麻烦
  • org.openpnp.vision.pipeline.stages.SizeCheck
  • 2026台州本地装修公司口碑榜排名?值得信赖的品质与高性价比王者推荐 - 疯一样的风
  • 如何快速掌握Zotero-SciHub插件:科研工作者的文献获取终极指南