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

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

1005. K 次取反后最大化的数组和 - 力扣(LeetCode)

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);int i = 0;while (i < nums.length && nums[i] < 0 && k > 0) {nums[i] = nums[i] * -1;i++;k--;}// K大于0,表示负数已经处理完毕了,还需转换if (k % 2 != 0) {if (i == nums.length) {i = nums.length - 1;}if (i == 0 || (i > 0 && nums[i] < nums[i - 1])) {nums[i] = nums[i] * -1;} else {nums[i - 1] = nums[i - 1] * -1;}}int result = 0;for (int j = 0; j < nums.length; j++) {result += nums[j];}return result;}
}

134. 加油站 - 力扣(LeetCode) 

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {// if (gas.length == 1 && gas[0] >= cost[0]) {//     return 0;// }// int[] remain = new int[gas.length];// int sum = 0;// for (int i = 0; i < remain.length; i++) {//     remain[i] = gas[i] - cost[i];//     sum += remain[i];// }// if (sum < 0) {//     return -1;// }// for (int i = 0; i < remain.length; i++) {//     if (remain[i] <= 0) {//         continue;//     }//     sum = remain[i];//     int j = i + 1;//     for (; sum >= 0 && j % remain.length != i; j++) {//         sum += remain[j % remain.length];//     }//     if (sum >= 0 && j % remain.length == i) {//         return i;//     }// }// return -1;for (int i = 0; i < gas.length; i++) {int sumGas = 0;int sumCost = 0;int j = 0;while (sumGas >= sumCost && j <= gas.length) {sumGas += gas[(i + j) % gas.length];sumCost += cost[(i + j) % gas.length];j++;}if (sumGas >= sumCost && j > gas.length) {return i;} else {i = i + j - 1;}}return -1;}
}

135. 分发糖果 - 力扣(LeetCode)

class Solution {public int candy(int[] ratings) {int[] result = new int[ratings.length];Arrays.fill(result,1);for(int i=1;i<ratings.length;i++){if(ratings[i] > ratings[i-1]){result[i] = result[i-1] +1;}}for(int j=ratings.length-2;j>=0;j--){if(ratings[j] >ratings[j+1]){if(result[j] < result[j+1]+1){result[j] = result[j+1] +1;}}}int sum = 0;for(int k=0;k<ratings.length;k++){sum+= result[k];    }return sum;}
}

相关文章:

  • 串口通信实战:STM32与多种设备的连接方法
  • JVM常用概念之线程本地分配缓冲区(ThreadLocal Allocation Buffer,TLAB)
  • vivado HW_SERVER
  • C++ STL 中的 priority_queue::push() 和 priority_queue::pop()
  • stm32MP135裸机编程:启动流程分析
  • 假设Python脚本包含引用了大量的第三方库,如何打包成.exe文件,并且可以在没有环境的服务器下正常运行
  • vue-2 组件传值
  • Django学习(2)项目实战
  • React 18
  • ISO 19115-2:2019 第6章 获取和处理元数据
  • 【C++】STL中list的使用
  • powerdesigner各种字体设置
  • 深度解析:全流量分析与IP会话回溯在IT运维中的应用
  • matlab演示银河系转动动画
  • 进程概念(二)
  • download使用浅析
  • HTML中设置input等文本框为不可操作
  • Invalidate和postInvalidate的区别
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript设计模式与开发实践系列之策略模式
  • Java方法详解
  • Java小白进阶笔记(3)-初级面向对象
  • maya建模与骨骼动画快速实现人工鱼
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vue 重置组件到初始状态
  • VuePress 静态网站生成
  • Vue全家桶实现一个Web App
  • vue学习系列(二)vue-cli
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 理清楚Vue的结构
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 一些css基础学习笔记
  • 如何在招聘中考核.NET架构师
  • ​用户画像从0到100的构建思路
  • #1015 : KMP算法
  • (k8s)kubernetes集群基于Containerd部署
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计大学生兼职系统
  • (算法)区间调度问题
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)德国人的记事本
  • (转)关于pipe()的详细解析
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .net连接oracle数据库
  • .NET委托:一个关于C#的睡前故事
  • .NET学习全景图
  • /run/containerd/containerd.sock connect: connection refused
  • ::前边啥也没有
  • ?
  • @Bean, @Component, @Configuration简析
  • @GlobalLock注解作用与原理解析
  • @RequestMapping-占位符映射
  • @Responsebody与@RequestBody