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

代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

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

public class Solution {public int LargestSumAfterKNegations(int[] nums, int k) {int cnt=0;int sum=0;int min=int.MaxValue;Array.Sort(nums);for(int i=0;i<nums.Length;i++){if(nums[i]>=0){continue;}else{nums[i]=-nums[i];cnt++;}if(cnt==k){for(int j=0;j<nums.Length;j++){sum+=nums[j];}return  sum;}}for(int i=0;i<nums.Length;i++){if(nums[i]<min){min=nums[i];}}k-=cnt;if(k%2==0){for(int j=0;j<nums.Length;j++){sum+=nums[j];}return  sum;}if(k%2==1){for(int j=0;j<nums.Length;j++){sum+=nums[j];}return  sum-2*min;}return sum;}
}

先排序,每次都找到最小的数然后反转,然后计数如果所有负数反转完成之前达到K直接求和,如果K有多余了就去反复反转最小的,然后求和就行。

134.加油站

public class Solution {public int CanCompleteCircuit(int[] gas, int[] cost) {int cursum=0;int totalsum=0;int start=0;int sum=0;for(int i=0;i<gas.Length;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;
}
}

 135.分发糖果

public class Solution {public int Candy(int[] ratings) {int[]can=new int[ratings.Length];int sum=0;for(int i=0;i<can.Length;i++){can[i]=1;}for(int i=1;i<ratings.Length;i++){if(ratings[i]>ratings[i-1]){can[i]=can[i-1]+1;}}for(int i=ratings.Length-2;i>=0;i--){if(ratings[i]>ratings[i+1]){can[i]=Math.Max(can[i+1]+1,can[i]);}}for(int i=0;i<can.Length;i++){sum+=can[i];}return sum;}
}

进行两遍,先是从左到右考虑右边比左边大的时候,右边就是左边的值加1,然后最后从右到左如果左边比右边大就比较右边加1和当前的值比,哪个大取哪个,最后求和返回就行。

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

相关文章:

  • 解决LeetCode编译器报错的技巧:正确处理位操作中的数据类型
  • 一周学会Django5 Python Web开发-Django5操作命令
  • 反转链表【基础算法精讲 06】
  • Git 初学
  • 智胜未来,新时代IT技术人风口攻略-第四版(弃稿)
  • 渗透专用虚拟机(公开版)
  • HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-时间管理
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之file_operations详解 (物联技术666)
  • 第9章 网络编程
  • Python setattr函数
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • 探索弗洛姆的思想:人类本质与爱的哲学
  • 【碎片知识点】安装Linux系统 VMware与kali
  • Android 车载应用开发之SystemUI 详解
  • C# CAD-Xdata数据 添加(一)
  • 【NLP】MHA、MQA、GQA机制的区别
  • nginx upstream server主动健康监测模块添加https检测功能
  • OCP的operator——(4)用户任务:使用Operator创建etcd集群
  • win7自带截图工具保存失效解决办法
  • Android14之Android Rust模块编译语法(一百八十七)
  • 分布式文件系统 SpringBoot+FastDFS+Vue.js【三】
  • 【深度学习每日小知识】全景分割
  • 机器人能否返回原点
  • Mysql5.6忘记密码,如何找回(windows)
  • 算法训练营day29, 贪心算法3
  • 164基于matlab的奇异值分解、小波降噪、zoom细化
  • 每日OJ题_算法_递归③力扣206. 反转链表
  • 【Linux】指令 【whereis】
  • 牛客网SQL进阶128:未完成试卷数大于1的有效用户
  • GitHub的使用操作