代码随想录算法训练营 | 134. 加油站,135. 分发糖果,860.柠檬水找零,406.根据身高重建队列

news/2024/12/31 0:04:00/文章来源:https://www.cnblogs.com/wowoioo/p/18446483

134. 加油站
题目链接:134. 加油站
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰加油站
日期:2024-10-04

想法:1.总汽油大于等于消耗一定能跑完,2.当前剩余汽油小于0了,只能从下一站开始重新计算
Java代码如下:

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int index = 0;for (int i = 0; i < gas.length; i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) {index = i + 1; curSum = 0;}}if (totalSum < 0) return -1;return index;}
}

135. 分发糖果
题目链接:135. 分发糖果
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰分发糖果
日期:2024-10-04

想法:两次贪心:一次是从左到右遍历,比较右边评分比左边大的情况,一次是从右到左遍历,比较左边评分比右边大的情况。
Java代码如下:

class Solution {public int candy(int[] ratings) {int[] candyVec = new int[ratings.length];candyVec[0] = 1;for(int i = 1; i < ratings.length; i++) {if(ratings[i] > ratings[i - 1]) {candyVec[i] = candyVec[i - 1] + 1;}else{candyVec[i] = 1;}}for(int i = ratings.length - 2; i >= 0; i--) {if(ratings[i] > ratings[i + 1]) {candyVec[i] = Math.max(candyVec[i + 1] + 1, candyVec[i]);}}int res = 0;for(int candy : candyVec) {res += candy;}return res;}
}

总结:每次考虑一个方向才能不乱。

860.柠檬水找零
题目链接:860.柠檬水找零
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰柠檬水找零
日期:2024-10-04

想法:5, 10没有选择;20的话优先消耗10和5,如果没有10再消耗3张5
Java代码如下:

class Solution {public boolean lemonadeChange(int[] bills) {int five = 0;int ten = 0;for(int i = 0; i < bills.length; i++) {if(bills[i] == 5) {five++;}if(bills[i] == 10) {if(five <= 0) return false;five--;ten++;}if(bills[i] == 20) {if(five > 0 && ten > 0) {five--;ten--;}else if(five >= 3) {five -= 3;}else {return false;}}}return true;}
}

406.根据身高重建队列
题目链接:406.根据身高重建队列
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰根据身高重建队列
日期:2024-10-04

想法:按照从高往低排,再从前到后按K值插入。
Java代码如下:

class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, (a, b) -> {if (a[0] == b[0]) return a[1] - b[1];return b[0] - a[0];});LinkedList<int[]> que = new LinkedList<>();for (int[] p : people) {que.add(p[1],p);}return que.toArray(new int[people.length][]);}
}

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

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

相关文章

20241003

公交车(bus) 显然的题目,答案就是所有连通块的大小减一之和 #include <bits/stdc++.h>using namespace std;#define int long longconst int N = 1e7 + 5;int n, m, fa[N], sz[N], ans;int find(int x) {if (fa[x] == x) {return x;}return fa[x] = find(fa[x]); }void m…

C语言中对象式宏

001、不使用对象式宏[root@localhost test]# ls test.c [root@localhost test]# cat test.c ## 测试程序 #include <stdio.h>int main(void) {int i, sum = 0;int v[5] = {3, 8, 2, 4, 6}; ## 定义int【5】 型数组for(i = 0; i < 5; i…

helm学习

引用案例: 学习连接:https://www.bilibili.com/video/BV12D4y1Y7Z7/?p=7&vd_source=e03131cedc959fdee0d1ea092e73fb24 (时间:06:16)helm新建一个chart,然后删除templates里面的文件,重新编写一个,最后完成发布,更新,回滚动作1,创建一个模版的chart包,删除原来的…

R语言中gene symbol 转换为ENTREZID, clusterprofile富集分析

001、genes <- read.table("genes.txt") ## 读取基因symbol head(genes) tail(genes) genes <- genes[genes != "NA_NA" & genes != "unknow",, drop = FALSE] ## 去除无效信息(可选) genes_list <…

折半查找法的平均查找长度(成功/失败)

转载:https://blog.csdn.net/qq_73966979/article/details/131354005

Leetcode 1498. 满足条件的子序列数目

1.题目基本信息 1.1.题目描述 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大,请将结果对 109 + 7 取余后返回。 1.2.题目地址 https://leetcode.cn/problem…

Nuxt.js 应用中的 app:beforeMount 钩子详解

title: Nuxt.js 应用中的 app:beforeMount 钩子详解 date: 2024/10/4 updated: 2024/10/4 author: cmdragon excerpt: app:beforeMount 是一个强大的钩子,允许开发者在用户界面挂载前控制应用的初始化过程。通过有效利用这一钩子,我们可以优化应用的用户体验,保持状态一致…

[leetcode 92] 反转链表 II

题目描述: https://leetcode.cn/problems/reverse-linked-list-ii 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4…

Vue3的项目搭建

有两种方式可以搭建: 一:使用vue-cli中的webpack创建 第二:推荐使用vite来创建项目 vite是新一代前端构建工具,新的前端构建工具,比webpack要快一些。 npm create vue@latest 创建完项目后,我们可以看到项目最外层有index.htmlVite项目中,index.html是项目的入口文件,在…

完全私有化部署!一款开源轻量级网站防火墙!

SamWaf —— 是一款适用于小公司、工作室和个人网站的开源轻量级网站防火墙,完全私有化部署,数据加密且仅保存本地,一键启动,支持 Linux,Windows.大家好,我是 Java陈序员。 今天,给大家介绍一款开源轻量级网站防火墙!关注微信公众号:【Java陈序员】,获取开源项目分享…

[题解]SFMOI Round I A~C

Portal:https://www.luogu.com.cn/contest/179008 \(\bf{100+50+50+25+5=\color{indianred}225\color{black}\ ,\ rk.\ 184}\)A - Strange Cake Game 显然对于小W,向下移动蛋糕刀是最有利的;对于小M,向右移动是最有利的。所以双方以最佳状态移动,最终\(x\le y\)的巧克力是…

11-网络物理隔离技术原理与应用

11.1 概述 1)概念 目的:既能满足内外网信息及数据交换需求,又能防止网络安全事件出现 基本原理:避免两台计算机之间直接的信息交换以及物理上的连通,以阻断两台计算机之间的直接在线网络攻击 2)风险网络非法外联 U盘摆渡攻击 网络物理隔离产品安全隐患 针对物理隔离的攻击…