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

每日一题——贪心算法

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

题解:

一开始有点理解错他的意思,以为是i是题目中会给出,所以一开始没有什么思路,然后当看了题解之后,就知道了原来i是自己订的,到时候自己找就可以,我的思路是,先按照绝对值的大小给他排列出来,然后给他遍历,负数就给他变成正数,当没负数的时候,再变小的正数,这就是贪心的思想由局部最小推出整体最小!

 
class Solution {public int largestSumAfterKNegations(int[] nums, int k) {nums = IntStream.of(nums).boxed().sorted((o1,o2) -> Math.abs(o2)-Math.abs(o1)).mapToInt(Integer::intValue).toArray();int len = nums.length;for(int i = 0;i < len;i++){if(nums[i]<0 && k<0){nums[i] = -nums[i];k--;}}if(k%2==1){nums[len-1] = -nums[len-1];}return Arrays.stream(nums).sum();}
}

134. 加油站 - 力扣(LeetCode)

这个题目一开始并不是很明白,看了题解之后发现有三种情况,第一种情况就是,当加油站的油的总和小于消耗的油的话就不会绕圈一周,当总和大于等于0的时候就返回0

 
class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int sum = 0;int min = 0;for(int i = 0; i < gas.length;i++){sum += (gas[i]-cost[i]);min = Math.min(sum,min);}if(sum<0){return -1;}if(min>=0){return 0;}for(int i = gas.length-1;i > 0;i--){min += (gas[i] - cost[i]);if(min>=0){return i;}}return -1;}
}

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

该题的思路就是分两种情况,就是先从左往右比,如果右边的数比左边的大就加一,然后就反过来遍历,如果左边的数比右边的数大就加一;

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

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

相关文章:

  • Artix7系列FPGA实现SDI视频编解码+图像缩放+多路视频拼接,基于GTP高速接口,提供4套工程源码和技术支持
  • HTTP 状态码详细介绍
  • React前端面试每日一试 5.什么是受控组件和非受控组件?
  • 代码随想录打卡第四十四天
  • 【JAVA】枚举类的使用:通过枚举类名称得到对应值进行输出
  • 20240731软考架构------软考6-10答案解析
  • 学习记录——day25 多线程编程 临界资源 临界区 竞态 线程的同步互斥机制(用于解决竟态)
  • [RK3566]linux下使用upgrade_tool报错
  • 系统架构师(每日一练13)
  • Error: No module factory available for dependency type: CssDependency
  • 【langchain学习】使用Langchain生成多视角查询
  • ASPCMS 漏洞详细教程
  • 二维码生成原理及解码原理
  • 云计算实训20——mysql数据库安装及应用(增、删、改、查)
  • 24年电赛——自动行驶小车(H题)基于 CCS Theia -陀螺仪 JY60 代码移植到 MSPM0G3507(附代码)
  • 数组的增删查查改
  • 设计模式——动态代理
  • vue(element-ui组件) 的this.$notify的具体使用
  • c++ - 模拟实现set、map
  • 计算机网络-PIM协议基础概念
  • 优化PyCharm:让IDE响应速度飞起来
  • 对象转化为String,String转化为对象
  • SolverLearner:提升大模型在高度归纳推理的复杂任务性能,使其能够在较少的人为干预下自主学习和适应
  • PHP智能问诊导诊平台-计算机毕业设计源码75056
  • 数据结构初阶(c语言)-排序算法
  • 网络云相册实现--nodejs后端+vue3前端
  • 【JS】Object.defineProperty与Proxy
  • 《计算机网络》(第8版)第8章 互联网上的音频/视频服务 复习笔记
  • linux进程控制——进程替换——exec函数接口
  • Apache解析漏洞~CVE-2017-15715漏洞分析