代码随想录算法训练营第36期DAY36
贪心好难,希望能坚持到柳暗花明那天。
DAY36
1005K次取反后最大化的数组和
自己的方法,注意越界条件放在最前面就好:
- class Solution {
- public:
- int largestSumAfterKNegations(vector<int>& nums, int k) {
- //自己的方法:
- sort(nums.begin(),nums.end());
- for(int i=0;i<nums.size()&&nums[i]<0&&k>0;i++){
- nums[i]*=-1;
- k--;
- }
- sort(nums.begin(),nums.end());
- if(k%2!=0) nums[0]*=-1;
- int res=0;
- for(int n:nums) res+=n;
- return res;
- //报错越界,为什么?注意限制条件的先后顺序,把nums.size()放在最前面,因为越界是不能的,所以首先判断。
- }
- };
代码随想录的方法,正好复习一下重载比较符的写法。
记得把自己的重载比较符写进sort里面去。
- class Solution {
- public:
- static bool mycmp(int a,int b){
- return abs(a)>abs(b);
- }
- int largestSumAfterKNegations(vector<int>& nums, int k) {
- sort(nums.begin(),nums.end(),mycmp);
- for(int i=0;i<nums.size();i++){
- if(nums[i]<0&&k>0) {
- nums[i]*=-1;
- k--;
- }
- }
- if(k%2!=0) nums[nums.size()-1]*=-1;
- int res=0;
- for(int n:nums)res+=n;
- return res;
- }
- };
134加油站
for循环适合模拟从头到尾的遍历,而while循环适合模拟环形遍历,要善于使用while
- 试试暴力法,既考验思维,又考验语法能力:
还是做不到,加油练习:



修改之后:
代码逻辑:先算油量,根据油量再移动index;(看当下能不能走得动,能不能出发)
- class Solution {
- public:
- int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
- for(int i=0;i<gas.size();i++){
- //先算油量,根据油量再移动index;(看当下能不能走得动,能不能出发)
- int store=0,index=i;
- store+=gas[i]-cost[i];
- if(store<0) continue;
- index=(index+1)%gas.size();
- while(store>=0&&index!=i){
- store+=gas[index]-cost[index];
- index=(index+1)%gas.size();
- }
- if(store>=0&&index==i) return i;
- }
- return -1;
- }
- };
没问题了,只是会超时。有提升就好。
- 后退法_全局贪心
知道思想,代码还是写不出来。思想也没对。
- 全局油量不够
- 累加过程没有出现负值,可行
- 出现负值,起点后退。
- class Solution {
- public:
- int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
- int mi=INT_MAX;
- int cursum=0;
- for(int i=0;i<gas.size();i++){
- cursum+=gas[i]-cost[i];
- if(cursum<mi) mi=cursum;
- }
- if(cursum<0) return -1;
- if(mi<0){
- for(int i=gas.size()-1;i>=0;i--){
- mi+=gas[i]-cost[i];
- if(mi>=0) return i;
- }
- }
- else return 0;
- return -1;
- }
- };
- 前进法_局部贪心
[0,i]一旦负数了,就从[i+1开始选起点。(家产败光了的意思——用光了留下当时的剩余,表明自己的都不够用,所以要换到下一个起点)。之后呢?不会了:for遍历的就是起点,找起点就好了。
前进法待二刷:
- class Solution {
- public:
- int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
- int cursum=0,totalsum=0,start=0;//标记起点,total判定一圈油量
- for(int i=0;i<gas.size();i++){
- totalsum+=gas[i]-cost[i];
- cursum+=gas[i]-cost[i];
- if(cursum<0){
- start=i+1;
- cursum=0;
- }
- }
- if(totalsum<0) return -1;
- return start;
- }
- };
135分发糖果,困难
待二刷:
- class Solution {
- public:
- int candy(vector<int>& ratings) {
- vector<int> candy(ratings.size(),1);
- if(ratings.size()==1) return 1;
- for(int i=1;i<ratings.size();i++){
- if(ratings[i]>ratings[i-1]){
- candy[i]=candy[i-1]+1;
- }
- }
- for(int i=candy.size()-2;i>=0;i--){
- if(ratings[i]>ratings[i+1])
- candy[i]=max(candy[i+1]+1,candy[i]);
- }
- int res=0;
- for(int r:candy) res+=r;
- return res;
- }
- };
相关文章:
代码随想录算法训练营第36期DAY36
贪心好难,希望能坚持到柳暗花明那天。 DAY36 1005K次取反后最大化的数组和 自己的方法,注意越界条件放在最前面就好: class Solution {public: int largestSumAfterKNegations(vector<int>& nums, int k) { //自己的…...
zookeeper安装教程
前置环境: hadoop3.3.6 三台集群 CentOS7 (图文并茂)基于CentOS-7搭建hadoop3.3.6大数据集群-CSDN博客 1.下载并上传 下载并上传ZOOKEEPER安装包到主节点 官网下载地址 Index of /dist/zookeeper (apache.org) 切换到/opt/bigdata目录(根据自己的情况…...
windows2008修改远程桌面端口,如何果断修改远程桌面端口,确保系统安全无忧!
在数字化时代的浪潮中,Windows 2008系统以其卓越的稳定性和可靠性,赢得了众多企业和个人的青睐。然而,随着网络安全问题的日益严峻,如何确保远程桌面连接的安全,成为了摆在我们面前的一道难题。今天,我将为…...
【计算机网络原理】对传输层TCP协议的重点知识的总结
˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…...
mysql实战——半同步复制搭建
一、搭建前准备 主库 192.168.1.78 从库 192.168.1.76 二、搭建 1、先搭建异步复制 MySQL实战——主从异步复制搭建(一主一从)-CSDN博客 2、在异步的基础上搭建半同步复制 主库 mysql>install plugin rpl_semi_sync_slave soname semisy…...
Leetcode 3152. Special Array II
Leetcode 3152. Special Array II 1. 解题思路2. 代码实现 题目链接:3152. Special Array II 1. 解题思路 这一题的话思路上就是分堆,使用贪婪算法找到每一个元素所在的最长special子序列,然后判断query的首尾元素是不是属于同一个special…...
人工智能与区块链技术:开启未来科技的双引擎
在当今科技飞速发展的时代,人工智能和区块链技术如同两颗璀璨的明星,照亮了人类通往未来的道路。 人工智能,以其强大的学习和分析能力,正悄然改变着我们的生活。它能够处理海量的数据,为我们提供精准的预测和个性化的…...
Python筑基之旅-MySQL数据库(二)
目录 一、第三方库 1、mysql-connector-python 1-1、由来 1-2、优缺点 1-2-1、优点 1-2-1-1、官方支持 1-2-1-2、纯Python实现 1-2-1-3、全面支持 1-2-1-4、兼容性 1-2-1-5、易于使用 1-2-2、缺点 1-2-2-1、性能 1-2-2-2、安装 1-2-2-3、社区支持 1-2-2-4、扩…...
web前端面试题
web前端面试题 1、前端如何实现优化性能 (1)减少网络时间 ①使用DNS缓存技术 ②减少需要传输的文件尺寸 ③加快文件传输速度 (2)减少发送的请求数量 ①利用浏览器缓存 ②使用合并的图片文件 (3)提高浏览器下载的并发度 ①JS文件放在HTML文档最后 ②使用多个域名 (…...
创建型模式之单例
文章目录 概述定义场景小结 概述 设计模式包括创建型模式,结构型模式,行为型模式。 今天先看看创建型模式,而单例是创建型模式中的第一个而且是常用的,就从它开始吧。 定义 单例模式用来创建全局唯一的对象。一个类只允许创建一…...
在 Next.js 应用中创建ContactForm表单提交
在 Next.js 应用中创建表单提交涉及几个关键步骤,包括设置表单、处理表单提交以及管理服务器端或 API 逻辑。以下是使用 Next.js 开发一个简单表单提交的步骤。 1. 设置表单组件 首先,创建一个表单组件。在这个例子中,我们将创建一个 Conta…...
HTML5 3D图像应用
目录 关键技术与规范应用示例与领域相关工具与框架HTML5 3D图像应用是利用HTML5、CSS3、JavaScript(及其相关的库和框架)以及其他现代Web技术(如WebGL)构建的,能够在浏览器中呈现三维图形、动画和交互式场景的应用程序。以下是一些关于HTML5 3D图像应用的关键点和示例: …...
SQL——DML对表中数据的操作
# 创建数据库 create database if not exists db_BigData default character set gb2312 default collate gb2312_chinese_ci; # 创建表 create table if not exists db_BigData.stu (id int auto_increment primary key comment 主键ID,name var…...
深度学习之基于Matlab卷积神经网络(CNN)手写数字识别
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉领域的一个重要问题,也是深度学习应用的一个典型场景。卷…...
工业4.0 企业级云MES全套源码,支持app、小程序、H5、台后管理端
工业4.0 企业级云MES全套源码,支持app、小程序、H5、台后管理端 采用javaspringboot-vue.jsuniapp开发 随着工业4.0的快速发展,制造执行系统(MES)成为了智能制造的核心。今天,将为大家介绍一款开源的MES系统——MES管…...
Science| 单体耦合纤维实现无芯片纺织电子(纤维器件/智能织物/柔性可穿戴电子)
东华大学Hongzhi Wang,Chengyi Hou和Qinghong Zhang团队在《Science》上发布了一篇题为“Single body-coupled fiber enables chipless textile electronics”的论文。论文内容如下: 一、 摘要 智能纺织品为将技术融入日常生活中提供了理想的平台。然而,目前的纺织电子系统…...
前端面试项目细节重难点(已工作|做分享)
面试官提问:需求场景:页面上有一个单选框,有是否两个选项:当用户选择是,出现一个输入框,用户可以输入内容,给后端的保存接口传入参数radio和content这两个字段,值分别是用户选项和输…...
ASTGCN 论文学习下
文章目录 4.4.2 时间注意力4.4.2 计算示例 4.5 空间-时间卷积4.5.1 空间维度上的图卷积4.5.2 时间维度上的图卷积4.5.3 空间-时间卷积模块总结 4.6 多组件融合 5 实验5.1 数据集5.1.1 PeMSD45.1.2 PeMSD8 5.2 数据预处理5.3 实验设置5.4 基线模型5.5 比较与结果分析5.5.1 主要发…...
【面经】单片机
1、单片机IO口工作方式 输入 模拟输入(GPIO_Mode_AIN):关闭施密特触发器,将电压信号传送到片上外设模块,通常用于连接模拟信号源。浮空输入(GPIO_Mode_IN_FLOATING):在浮空输入状态…...
基于manifest文件批量将coding的仓库导入gitlab中
文章目录 写在前面的话背景编写manifest文件最终效果 写在前面的话 前面有讲过通过manifest清单导入项目到gitlab中,但是实际的操作是不同gitlab实例之间的操作,然而对于在不同gitlab实例的repo迁移而言,显然direct transfer会更合适。 背景…...
多模型协作测试:OpenClaw同时调用Qwen3-32B与其他轻量镜像
多模型协作测试:OpenClaw同时调用Qwen3-32B与其他轻量镜像 1. 混合模型工作流的设计初衷 去年冬天的一个深夜,我正在调试一个需要同时处理代码生成和文本摘要的自动化任务。当时我的OpenClaw配置只能串行调用单一模型,每次任务切换都需要重…...
家庭游戏服务器搭建指南:使用Sunshine打造跨设备游戏串流体验
家庭游戏服务器搭建指南:使用Sunshine打造跨设备游戏串流体验 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在数字化时代,游戏玩家越来越需要灵活的游戏方…...
Flowframes:AI视频插帧技术解析与应用指南
Flowframes:AI视频插帧技术解析与应用指南 【免费下载链接】flowframes Flowframes Windows GUI for video interpolation using DAIN (NCNN) or RIFE (CUDA/NCNN) 项目地址: https://gitcode.com/gh_mirrors/fl/flowframes 在数字媒体领域,视频流…...
基于springboot+vue道路救援计费系统hx1046ZG
文章目录详细视频演示技术介绍功能介绍核心代码系统效果图源码获取详细视频演示 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 技术介绍 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomca…...
无人机飞控编程实战:从欧拉角到机体角速度,用Python/Matlab搞定姿态解算
无人机飞控编程实战:从欧拉角到机体角速度的姿态解算 当你在调试无人机时,发现姿态数据出现异常波动;当机器人在快速转向时,控制系统突然变得不稳定——这些问题的根源往往在于姿态解算的精度和实时性。作为飞控开发者,…...
新能源车全场景测试体系:从NVH性能到环境适应性等106项关键规范
新能源车试验规范,整车NVH性能主观评价规范,电动汽车寒区适应 性试验 ,电动汽车热区适应性试验,电动乘用车空调系统抗结霜性能试验规范,车载充电机测试规范,整车空调系统结霜性能试验方法,DCDC变…...
如何用AutoUnipus彻底改变你的U校园学习工作流:2025全新范式
如何用AutoUnipus彻底改变你的U校园学习工作流:2025全新范式 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 还在为U校园平台的繁重复习任务而困扰吗?每天…...
Obsidian Local Images Plus:打造永不丢失的笔记图片库终极指南
Obsidian Local Images Plus:打造永不丢失的笔记图片库终极指南 【免费下载链接】obsidian-local-images-plus This repo is a reincarnation of obsidian-local-images plugin which main aim was downloading images in md notes to local storage. 项目地址: h…...
Smithbox:游戏个性化定制的全功能开发平台
Smithbox:游戏个性化定制的全功能开发平台 【免费下载链接】Smithbox Smithbox is a modding tool for Elden Ring, Armored Core VI, Sekiro, Dark Souls 3, Dark Souls 2, Dark Souls, Bloodborne and Demons Souls. 项目地址: https://gitcode.com/gh_mirrors/…...
OpenClaw断点续跑:千问3.5-35B-A3B-FP8长任务中断恢复方案
OpenClaw断点续跑:千问3.5-35B-A3B-FP8长任务中断恢复方案 1. 当长任务遇上网络波动:我的深夜崩溃时刻 上周三凌晨2点,我正用OpenClaw对接千问3.5模型处理一批产品说明文档的自动化翻译任务。这个需要连续执行3小时的流程已经跑了80%&#…...
