力扣hot100 -- 贪心算法

👂 ▶ 逍遥叹 - 胡歌&沈以城【Mashup】 (163.com) 

👂 庐州月 - 许嵩 - 单曲 - 网易云音乐

2.7 小时,加上写博客,4 道题,😂 -- 希望二刷时,可以 3 小时,8 道题....

目录

🍉买卖股票的最佳时机

🌼跳跃游戏

🍓跳跃游戏 II

🎂划分字母区间


🍉买卖股票的最佳时机

121. 买卖股票的最佳时机 - 力扣(LeetCode)

贪心:维护目前为止的最小值

class Solution {
public:int maxProfit(vector<int>& prices) {int minPrice = 1e4; // 维护一个最小值int ans = 0;for (auto x : prices) {minPrice = min(minPrice, x);ans = max(ans, x - minPrice);}ans = ans < 0 ? 0 : ans;return ans;}
};

🌼跳跃游戏

55. 跳跃游戏 - 力扣(LeetCode)

贪心:维护可以跳到的最大索引(下标)

class Solution {
public:bool canJump(vector<int>& nums) {int Max = 0; // 维护当前可以跳到的最远下标for (int i = 0; i < nums.size(); ++i) {// 当前索引 i > Max, 说明无法到达if (i > Max)return false;if (Max >= nums.size() - 1)break;Max = max(Max, i + nums[i]);}return true;}
};// 1 2 5 1 1 0 3 1 0  1 1 1

🍓跳跃游戏 II

45. 跳跃游戏 II - 力扣(LeetCode)

题目保证 “可以到达 nums[n - 1]”

每次跳跃前,先计算最大范围,然后依次计算这个范围内

各个坐标所能到达的最远的点 maxPos,作为本次跳跃的目的地 end....

class Solution {
public:int jump(vector<int>& nums) {int maxPos = 0; // 维护最远的点int ans = 0, end = 0;// 不是 < nums.size(), 最后一个元素不用继续跳了for (int i = 0; i < nums.size() - 1; ++i) { // 最大范围 [i, end]maxPos = max(maxPos, i + nums[i]); // 维护最远距离if (i == end) { // 这一跳结束end = maxPos;ans++; // 只有到达 end, 才更新步数}}return ans;}
};// 1 1
// 1

🎂划分字母区间

763. 划分字母区间 - 力扣(LeetCode)

第一次遍历 O(n),用一个数组 last[26] 维护每个字母最后出现的位置

当前子串范围 [start, end]

第 2 次遍历 O(n),逐个遍历 i

动态地用 last[s[i] - 'a'] 更新 end,直到 i == end,满足当前子串要求

class Solution {
public:vector<int> partitionLabels(string s) {vector<int> ans;int last[26];for (int i = 0; i < s.size(); ++i)last[s[i] - 'a'] = i; // 字母 s[i] 最后出现位置int start = 0, end = 0; // 当前划分范围for (int i = 0; i < s.size(); ++i) {end = max(end, last[s[i] - 'a']); // 更新最后出现位置if (i == end) {ans.push_back(end - start + 1);start = end + 1;}}return ans;}
};

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

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

相关文章

SVN到Git过渡中分支管理经验(值得收藏)!

背景&#xff1a; SVN过渡到Git&#xff0c;分享项目中分支管理的经验。 分支类型&#xff1a; master分支&#xff1a;作为主分支&#xff0c;只能通过release分支合并&#xff0c;且只能由特定管理员操作。开发人员不能直接推送代码到远程仓库的master分支。release分支&…

怎么找短视频素材在哪里找?推荐五个自媒体人必备的视频素材网站

自媒体时代&#xff0c;短视频创作已成为主流。高质量的视频素材不仅能够提升内容质量&#xff0c;还能增加观众的观看兴趣。本文将为各位自媒体创作者介绍五大必备的视频素材网站&#xff0c;帮助大家轻松解决素材寻找的困扰&#xff0c;确保视频内容的专业性和吸引力。 蛙学…

【第二套】华为 2024 年校招-硬件电源岗

1.为了避免 50Hz 的电⽹电压⼲扰放⼤器&#xff0c;应该⽤那种滤波器&#xff1a; A.带阻滤波器 B.带通滤波器 C.低通滤波器 D.⾼通滤波器 2.PID 中的 I 和 D 的作⽤分别是&#xff1f; A、消除静态误差和提⾼动态性能 B、消除静态误差和减⼩调节时间 C、提⾼动态性能和减⼩超调…

三步学会使用WebSocekt

目录 一 什么是websocket 二 如何使用websocket 1.导入websocket的maven坐标 2.创建websocket的服务类 3.创建websocket的配置类 4.按需求实现业务逻辑 5.前端实现websocket 一 什么是websocket websocket和HTTP一样是基于TCP的一个通信协议。不过他是支持客户端和服务端…

1688商品采集用什么?【1688采集API接口】无视大量复制-同行店铺采集-批量全店采集-包邮商品采集

功能亮点&#xff1a; 1688同行店铺采集&#xff0c;1688批量全店采集&#xff0c;1688包邮商品采集&#xff0c;仅采集一件代发产品&#xff0c;采集发货时间&#xff0c;比如48小时发货&#xff0c;1688运费价格采集:可以采集运费价格 功能介绍二&#xff1a; 仅采集一件代…

数据结构与算法笔记:高级篇 - 并行算法:如何利用并行处理提高算法的执行效率?

概述 时间复杂度是衡量算法执行效率的一种标准。但是&#xff0c;时间复杂度并不能跟性能划等号。在真是的软件开发中&#xff0c;即便在不降低时间复杂度的情况下&#xff0c;也可以通过一些优化手段&#xff0c;提升代码的执行效率。毕竟&#xff0c;对于实际的软件开发来说…

Android Compose 十二:常用组件列表 上拉加载

列表 上拉加载 当前思路 判断 列表最后一个显示的条目 为 数据集合的长度-1 用来记录刷新状态 var refreshing by remember {mutableStateOf(false)}数据集合 val list remember{List(10){"条目》》${it}"}.toMutableStateList()}用来记录列表当前状态及状态变化…

行业分析---造车新势力之极氪汽车

1 前言 在之前的博客中&#xff0c;笔者撰写了多篇行业类分析的文章&#xff08;科技新能源&#xff09;&#xff1a; 《行业分析---我眼中的Apple Inc.》 《行业分析---马斯克的Tesla》 《行业分析---造车新势力之蔚来汽车》 《行业分析---造车新势力之小鹏汽车》 《行业分析-…

心跳机制简介

心跳机制 心跳机制&#xff08;Heartbeat Mechanism&#xff09;是一种用于监控和维护计算机系统、网络和分布式系统中各个节点之间连接状态的技术。它通过周期性地发送信号&#xff08;即“心跳”&#xff09;来确认系统组件之间的活跃性和可用性。如果某个节点没有在预期时间…

fastapi swagger js css 国内访问慢问题解决

fastapi swagger js css 国内访问慢问题解决 直接修改fastapi包中静态资源地址为如下地址 swagger_js_url: str "https://cdn.bootcdn.net/ajax/libs/swagger-ui/3.9.3/swagger-ui-bundle.js", swagger_css_url: str "https://cdn.bootcdn.net/ajax/libs/sw…

1971计算机毕业设计asp.net游乐园信息管理系统 VS开发access数据库web结构c#编程计算机网页源码项目

一、源码特点 asp.net游乐园信息管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 asp.net游乐园管理系统 二、功能介绍 前台功能&#xff1a; 1&#xff09;系统首页浏览 2&#xff09;园区通知浏…

leetcode-19-回溯-组合问题(剪枝、去重)

引自代码随想录 一、[77]组合 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度&#xff0c;到叶子节点的路径即为一个结果 开始索引保证不…

【计算机网络】网络层(作业)

【一】 1、某主机的 IP 地址为 166.199.99.96/19。若该主机向其所在网络发送广播 IP 数据报&#xff0c; 则目的地址可以是&#xff08;D&#xff09;。 A. 166.199.99.255B. 166.199.96.255C. 166.199.96.0D. 166.199.127.255 解析&#xff1a; 166.199.99.96/19166.199.0…

深入解读OkHttp3中的Dispatcher

OkHttp3是一个非常流行的HTTP客户端&#xff0c;用于与服务器通信。Dispatcher是OkHttp3中的一个关键组件&#xff0c;负责管理和调度请求。在这篇博客中&#xff0c;我们将深入探讨Dispatcher的工作原理、相关类的关系以及其实现细节。 什么是Dispatcher&#xff1f;&#x1…

STM32 看门狗 HAL

由时钟图可以看出看门狗采用的是内部低速时钟&#xff0c;频率为40KHz 打开看门狗&#xff0c;采用32分频&#xff0c;计数1250。 结合设置的分频系数和重载计数值&#xff0c;我们可以计算出看门狗的定时时间&#xff1a; 32*1250/40kHz 1s 主函数中喂狗就行 HAL_IWDG_Ref…

车载资料分享中:硬件在环、canoe、UDS诊断、OTA升级、TBOX测试

每日直播时间&#xff1a; 周一到周五&#xff1a;20&#xff1a;00-23&#xff1a;00 周六与周日&#xff1a;9&#xff1a;00-17&#xff1a;00 直播内容&#xff1a;&#xff08;车厂一比一测试&#xff09; HIL&#xff08;硬件在环&#xff09;测试、UDS功能诊断、UDS自动…

Java集合整理笔记

目录 1.集合基础概念 1.1 集合 1.2 单例集合 1.2.1 List系列 1、ArrayList 2、LinkedList 3、Voctor​编辑 1.2.2 Set系列 1、HashSet 集合 2、LinkedHashSet 集合 3、TreeSet集合 1.3 双例集合 1.3.1 HashMap 1.3.2 LinkedHashMap 1.3.3 TreeMap 1.4 快速失败…

小抄 20240630

1 大学和电视剧里演的大学&#xff0c;是两回事&#xff0c;不要带着电视剧的滤镜去看大学。 你的大学室友不一定能成为朋友&#xff0c;你的教官不一定有你情绪稳定&#xff0c;你的恋爱可能是杀猪盘&#xff0c;你的学长学姐给你领路可能只是为了高溢价卖你垃圾东西。 上大…

华为机试HJ2计算某字符出现次数

华为机试HJ2计算某字符出现次数 题目&#xff1a; 计算字符串中的某个字符出现的次数&#xff0c;不区分大小写。 想法&#xff1a; 将输入的字符串和要查询的字符变为小写&#xff0c;遍历整个字符串统计要查的字符个数。 input_str input().lower() check_str input()…

一篇搞懂!LinuxCentos中部署KVM虚拟化平台(文字+图片)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f468;‍&#x1f4bb;Linux高级管理专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月28日15点11分 &#x1f004;️文章质量&#xff1a;94分 目录 ————前言———— KVM的优点 KVM…