算法刷题记录 Day28

算法刷题记录 Day28

Date: 2024.03.23

lc 45. 跳跃游戏II

// 使用范围计算
class Solution {
public:int jump(vector<int>& nums) {if(nums.size() == 1)return 0;int pre_range = 0;int range = 0;      // 当前覆盖范围int cur_steps = 0;  // 当前步数// 每次遍历当前范围较上轮范围的增量,步数加一。while(range < nums.size()){int tmp_range = range;for(int i=pre_range; i<=tmp_range  && i<nums.size(); i++){range = max(range, i+nums[i]);}cur_steps++;pre_range = tmp_range;if(range >= nums.size()-1)break;}return cur_steps;}
};// 暴力,记录到达每个点的最小步数
class Solution {
public:int jump(vector<int>& nums) {if(nums.size() == 1)return 0;vector<int> canRearch(nums.size(), -1); //-1表示不可达,反之则表示到达所需最少步数canRearch[0] = 0;for(int i=0; i<nums.size(); i++){int len = nums[i];if(canRearch[i] != -1){for(int j=i+1; j<=i+len && j<nums.size(); j++){if(canRearch[j] == -1)canRearch[j] = canRearch[i] + 1;else{canRearch[j] = min(canRearch[j], canRearch[i]+1);}}}}return canRearch[nums.size()-1];}
};

lc 55. 跳跃游戏

// 优化:取能覆盖的最大值,而不是按每个位置更新
class Solution {
public:bool canJump(vector<int>& nums) {// 找到所有能到达终点的前继点int range = 0;for(int i=0; i<nums.size() && i<=range; i++){int len = nums[i];range = max(range, i+len);//cout<<"i:"<<i<<" range:"<<range<<endl;}return range >= (nums.size()-1);}
};// 暴力
class Solution {
public:bool canJump(vector<int>& nums) {// 从头往后推能到达的位置vector<bool> canRearch(nums.size(), false);canRearch[0] = true;for(int i=0; i<nums.size(); i++){int len = nums[i];if(canRearch[i]){   //若该位置能到达,根据该位置的长度,更新一轮能到达位置for(int j=i+1; j<=i+len && j<nums.size(); j++){canRearch[j] = true;}}}return canRearch[nums.size()-1];}
};

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

class Solution {
public:int maxProfit(vector<int>& prices) {int earn = 0;   //当前利润// 后一天比当前贵,不卖;后一天比当前便宜,卖;for(int i=0; i<prices.size()-1; i++){if(prices[i+1] > prices[i])earn += (prices[i+1] - prices[i]);}return earn;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/785215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙OS开发实例:【通知消息】

背景 HarmonyOS 论坛中有研发人员求助&#xff0c;反馈通知没有没有声音&#xff0c;因此在真机上验证了一下&#xff0c;果不其然&#xff0c;没有通知的提示音&#xff0c;后来解决办法也非常简单&#xff0c;在手机设置应用中&#xff0c;将可以打开的通知提示统统改为铃声…

告别繁琐代码,只需简单拖拽,便可从0到1开发!

告别繁琐代码&#xff0c;拥抱科技未来&#xff01;只需简单拖拽&#xff0c;便可从0到1开发&#xff01;代码即刻生成&#xff0c;一键下载&#xff0c;轻松上手。我们的低代码平台&#xff0c;不仅高效便捷&#xff0c;更完全开源&#xff0c;让你自由探索编程的无限可能&…

利用DNDC模型分析温室气体排放的建模方法与实践

碳循环的精确模拟是实现“双碳”行动的关键。DNDC&#xff08;Denitrification-Decomposition&#xff0c;反硝化-分解模型&#xff09;是目前国际上最为成功的模拟生物地球化学循环的模型之一&#xff0c;自开发以来&#xff0c;经过不断完善和改进&#xff0c;从模拟简单的农…

算法—递归逆序栈、排序栈

递归和栈 1. 递归逆序栈2. 递归排序栈 1. 递归逆序栈 只用递归逆序一个栈&#xff0c;时间复杂度O(n^2) // 栈底元素移除掉&#xff0c;上面的元素盖下来 // 返回移除掉的栈底元素 public static int bottomOut(Stack<Integer> stack) {int ans stack.pop();if (stack…

MySQL TDE 透明数据加密 知识总结

目录 一、存储加密说明 二、TDE概述 三、MySQL对TDE支持情况 四、注意事项 一、存储加密说明 MySQL数据库存储加密有多种方式可供选择&#xff0c;主要分为两大类&#xff1a; 利用字段加密&#xff0c;在对数据库存储/读取时进行加密/解密操作&#xff0c;需要用户修改应…

设计模式-装饰者模式在Java中使用实例-打印发票装饰抬头和脚注

场景 设计模式-装饰者模式在Java中的使用示例&#xff1a; 设计模式-装饰者模式在Java中的使用示例_java装饰者模式例子-CSDN博客 上面装饰器的调用示例如下 AbstarctComputer computer;//要买1台电脑computer new BaseComputer();//加一个内存条computer new MemoryDecor…

【面试专题】Spring高频面试题

1.Spring应该很熟悉吧&#xff1f;来介绍下你的Spring的理解 有些同学可能会抢答&#xff0c;不熟悉!!! 好了&#xff0c;不开玩笑&#xff0c;面对这个问题我们应该怎么来回答呢&#xff1f;我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍Spring是怎么来的…

密码学 总结

群 环 域 群 group G是一个集合&#xff0c;在此集合上定义代数运算*&#xff0c;若满足下列公理&#xff0c;则称G为群。 1.封闭性 a ∈ G , b ∈ G a\in G,b\in G a∈G,b∈G> a ∗ b ∈ G a*b\in G a∗b∈G 2.G中有恒等元素e&#xff0c;使得任何元素与e运算均为元素本…

鸿蒙(HarmonyOS)ArkTs语言基础教程开发准备

本文档适用于HarmonyOS应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉HarmonyOS应用开发流程。 在开始之前&#xff0c;您需要了解有关HarmonyOS应用的一些基本概…

【LAMMPS学习】六、LAMMPS可选包(2)可用软件包详情

6、LAMMPS可选包 本节概述了扩展 LAMMPS 功能的可选包。包是启用一组特定功能的文件组。例如&#xff0c;分子系统的力场或刚体约束都在封装中。您可以通过在 LAMMPS 发行版的 src 目录中键入“make package”来查看所有包的列表以及用于管理它们的“make”命令。构建包页面提…

python 移位运算符

左移运算符<< 示例a<<b 表示把a的二进制位向左移动b位&#xff0c;高位溢出丢弃&#xff0c;低位补0&#xff0c;结果是a乘以2的b次方 a21 print(a*2**3)#168 print(a<<3)#168 ba<<3 print(bin(a))#0b10101 二进制为10101 print(bin(b))#0b10101000 …

【C++学习(27)】一个c++类的实例“多线程“运行的例子

一个类本身并不直接“用于多线程运行”。但是&#xff0c;类的实例&#xff08;即对象&#xff09;可以在多线程环境中被使用&#xff0c;并且类的设计可以影响它在多线程环境中的表现和易用性。 在多线程编程中&#xff0c;重要的是要理解线程安全和并发控制的概念。线程安全…

誉天华为认证存储HCIE课程怎么样

HCIA-Storage 课程介绍课程适合转行想进入IT行业者、零基础学员、IT从业人员、存储爱好者等 实验环境全真机&#xff0c;练习时间自由&#xff0c;7*24开机&#xff0c;可以随时通过远程连接进行试验课程内容 存储发展历史 存储硬件介绍 硬盘接口介绍 RAID技术 RAID2.…

解码视频流在opengl中的贴图投影计算

解码视频流在opengl中的贴图投影计算 修改顶点着色器cpp 文件放大缩小 我们把视频当成纹理,首先要确定贴入的坐标&#xff0c;原始坐标如下所示 static float vertices[] {// ---- 位置 ---- ---- 颜色 ---- - 纹理坐标 -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f…

为BUG编程:函数重载的烦恼 char *匹配bool而不是string

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 这是一个BUG。 运行环境为linu…

表单全选反选(前端)

1.Html和JavaScript <table><tr><th class"allCheck"><input type"checkbox" name"" id"checkAll"> <span class"all">全选</span></th><th>商品</th><th>商…

【成功案例】间隔数月双团伙先后利用某ERP0day实施入侵和勒索的解密恢复项目

1.背景 在2024年3月23日&#xff0c;我们的Solar应急响应团队&#xff08;以下简称Solar团队&#xff09;应某公司之邀&#xff0c;介入处理了一起财务系统服务器遭受黑客攻击的事件。该事件导致服务器上大量文件被加密。我们的团队迅速获取了一个被加密的文件&#xff0c;并立…

深度剖析:计算机集群在大数据体系中的关键角色和技术要点

什么是计算机集群&#xff1f; 计算机集群是一组相互连接的计算机&#xff08;服务器&#xff09;&#xff0c;它们协同工作以完成共同的任务。集群中的每个计算机节点都可以独立运行&#xff0c;但它们通过网络连接在一起&#xff0c;以实现更高的可靠性、性能和可扩展性。 典…

多图详细教你注册Google(Gmail)新账号,常见问题和注意事项

对于做外贸&#xff0c;或者需要和外国客户、朋友沟通的小伙伴来说&#xff0c;一个Google账号&#xff08;也就是Gmail账号&#xff0c;下述统一用Google账号来表述&#xff09;是非常必要的&#xff0c;一方面是通过Gmail邮箱收发邮件、沟通往来&#xff0c;另一个方面是很多…

高性能RestTemplate连接池封装配置实战

高性能RestTemplate连接池封装配置实战 package net.xdclass.config;import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org…