当前位置: 首页 > news >正文

代码随想录day34

1005.K次取反后最大化的数组和 

本题主要是想到排序的时候要按绝对值大小排序。

class Solution {
static bool cmp(int a,int b){return abs(a)>abs(b);
}
public:int largestSumAfterKNegations(vector<int>& nums, int k) {sort(nums.begin(),nums.end(),cmp);for(int i=0;i<nums.size();i++){if(nums[i]<0&&k){nums[i]*=-1;k--;}}if(k%2==1) nums[nums.size()-1]*=-1;int res=0;for(int num:nums){res+=num;}return res;}
};

134. 加油站

局部最优就是当前累加和小于0就以下一个站点为起始站点,全局最优就是找到一个站点能走一圈。

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int cursum=0;int totalsum=0;int start=0;for(int i=0;i<gas.size();i++){cursum+=(gas[i]-cost[i]);totalsum+=(gas[i]-cost[i]);if(cursum<0){start=i+1;cursum=0;}}if(totalsum<0) return -1;return start;}
};

错因:1、开始加的不是净增量2、没有单独算totalsum

135. 分发糖果

这种需要考虑两边的题目,要先看一边,再考虑另一边,不然容易顾此失彼。

class Solution {
public:int candy(vector<int>& rating) {vector<int> res(rating.size(),1);for(int i=1;i<rating.size();i++){if(rating[i]>rating[i-1]){res[i]=res[i-1]+1;}}for(int i=rating.size()-2;i>=0;i--){if(rating[i]>rating[i+1]){res[i]=max(res[i+1]+1,res[i]);}}int sum=0;for(int num:res){sum+=num;}return sum;}
};

http://www.lryc.cn/news/94208.html

相关文章:

  • CSS知识点汇总(八)--Flexbox
  • ASCII、Unicode、UTF-8、GBK
  • 【安全】使用docker安装Nessus
  • 【Hadoop综合实践】手机卖场大数据综合项目分析
  • 服务器技术(三)--Nginx
  • OpenCV——总结《车牌识别》之《常用的函数介绍》
  • chatgpt赋能python:如何利用Python进行自动化办公
  • linux-2.6.22.6内核网卡驱动框架分析
  • 机器学习7:特征工程
  • coverage代码覆盖率测试介绍
  • 使用 Debian、Docker 和 Nginx 部署 Web 应用
  • Redis原理 - 内存策略
  • 【计算机网络】IP 地址处理函数
  • 9i物联网浏览器(cef_114.2.110114.2.100支持H264视频)WinForm-CefSharp114(5735)视频版本体验
  • 如何在本地运行一个已关服但具有客户端的游戏
  • C语言编程—预处理器
  • 使用 Maya Mari 设计 3D 波斯风格道具(p1)
  • Redis分布式问题
  • synchronized原理
  • 10G光模块能兼容千兆光口吗
  • css 显示省略号 和 动态显示省略号
  • LeetCode 1253. 重构 2 行二进制矩阵
  • 【八股】【C++】内存
  • 数据库G等待
  • PCB封装设计指导(一)基础知识
  • Flask框架之Restful--介绍--下载--基本使用
  • 2023年上海市浦东新区网络安全管理员决赛理论题样题
  • SQL语言的四大组成部分——DCL(数据控制语言)
  • ChatGPT新功能曝光:可记住用户信息、上传文件和工作区
  • 【Unity编辑器扩展】(三)PSD转UGUI Prefab, 一键拼UI解放美术/程序(完结)