2025-3-14 leetcode刷题情况(贪心算法)

一、53.最大子序和

1.题目描述

2.代码

3.思路

先特殊处理数组只有一个数的情况,再定义两个变量,sum用于记录最大子数组和,count用于记录当前连续子数组的和。使用for循环遍历数组nums中的每个元素。对于每个元素nums[i],将其累加到count中。每次累加后,使用Math.max函数比较sumcount的大小,将较大值更新到sum中,确保sum始终记录最大子数组和。如果count小于等于 0,说明当前连续子数组的和为负数或 0,继续往后累加这个子数组不会得到更大的和,因此将count重置为 0,重新开始计算新的连续子数组和。遍历结束后,sum中存储的就是最大子数组和,将其返回。

二、134.加油站

1.题目描述

2.代码

3.思路

  1. 变量初始化
    • curSum:用于记录从当前起始加油站出发,到当前遍历到的加油站时,剩余的汽油量。初始化为 0。
    • totalSum:用于记录整个环形路线中,汽油总量与消耗总量的差值。初始化为 0。
    • index:用于记录可能的起始加油站的索引,初始化为 0。
  2. 遍历加油站
    • 使用 for 循环遍历每个加油站,索引为 i
    • 对于每个加油站,计算在该加油站补充汽油并前往下一个加油站后的剩余汽油量,即 gas[i] - cost[i],将其累加到 curSumtotalSum 中。
    • 如果 curSum 小于 0,说明从当前起始加油站出发无法到达当前加油站,需要更换起始加油站。将起始加油站的索引更新为 (i + 1) % gas.length,并将 curSum 重置为 0,重新开始计算剩余汽油量。
  3. 判断是否能完成一圈行驶
    • 遍历结束后,检查 totalSum 的值。如果 totalSum 小于 0,说明整个环形路线上的汽油总量小于消耗总量,无论从哪个加油站出发都无法完成一圈行驶,返回 -1。
    • 如果 totalSum 大于等于 0,说明存在可以完成一圈行驶的起始加油站,返回 index
相关推荐
水木流年追梦4 分钟前
大模型入门-DPO 直接偏好优化
人工智能·学习·算法·机器学习·正则表达式
alphaTao15 分钟前
LeetCode 每日一题 2026/5/18-2026/5/24
python·leetcode
汉克老师35 分钟前
GESP6级C++考试语法知识(二十七、广度优先搜索(二、二维BFS))
c++·算法·图论·宽度优先·广度优先搜索·gesp6级·gesp六级
此生决int36 分钟前
算法从入门到精通——位运算
数据结构·c++·算法·蓝桥杯
春栀怡铃声37 分钟前
【C++修仙录02】筑基篇:vector 使用
开发语言·c++·算法
Loli_Wolf41 分钟前
AI 原生研发闭环:从提需到线上监测,再自动回到提需
人工智能·深度学习·算法·microsoft·ai·ai编程·harness
计算机安禾1 小时前
【算法分析与设计】第4篇:分治策略的理论框架与经典案例
数据结构·算法·排序算法
Kiling_07041 小时前
面向对象和集合编程题 ( 二 )
java·开发语言·数据结构·算法
过期动态1 小时前
【LeetCode 热题 100】两数之和— 暴力法与哈希表法详解
java·数据结构·算法·leetcode·散列表
重生之我是Java开发战士1 小时前
【贪心算法】最长回文串,增减字符串匹配,分发饼干,最优除法,跳跃游戏
游戏·贪心算法·哈希算法