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

1005

题目:

给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:

  • 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。

重复这个过程恰好 k 次。可以多次选择同一个下标 i 。以这种方式修改数组后,返回数组 可能的最大和 。

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

思路:

贪心,先从小到大排序,然后从i=0开始操作直到num[i]大于0,排序,如果此时k仍然大于0就改变nums[0]。

详情:代码随想录 (programmercarl.com)

代码:

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);int sum = 0;for(int i=0;i<nums.length;i++){if(nums[i]>0) break;if(k>0){nums[i]=-nums[i];k--;}}Arrays.sort(nums);while(k>0){nums[0]=-nums[0];k--;}for(int i=0;i<nums.length;i++)sum = sum +nums[i];return sum;}
}

134

题目:

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。

你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。

给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。

题目链接:134. 加油站 - 力扣(LeetCode)

思路:

1.使用暴力法两层for循环模拟,要注意边界条件,小部分数据超时

2.贪心策略,先将两个数组的差做累加,同时记录其中累加和的最小值,如果累加值小于0则不满足,如果最小值大于0则是从0加油站,然后从后往前遍历直到最小值加差值能被填为大于等于0,就是这个加油站

3贪心策略,将两个数组的差做累加,如果小于0则这个区间都不满足。从i+1开始继续,循环上述步骤直到结束。如果累计值小于0不满足,否则返回i+1。

详情:代码随想录 (programmercarl.com)

代码:

//暴力法
class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int res [] =new int [gas.length];List <Integer> a = new ArrayList<Integer>();for(int i = 0;i<gas.length;i++){res[i]=gas[i]-cost[i];if(res[i]>=0)a.add(i);}if(a.size()==0) return -1;for(int i =0 ; i <a.size();i++){int index =a.get(i)+1;//当前加油站int cur = res[index-1];//当前油箱油量int flag = 0;int index_1=index;//起始模拟的下标int index_2 =index-2;//成功终止的下标if(index_2==-1) {index_2=gas.length-1;flag=1;}if(index ==gas.length){index_1=0;flag = 1;}               for(int j = index_1 ;j<gas.length;j++){cur = cur+res[j];if(cur<0)   break; //此次出发加油站不满足if((j==(gas.length-1)) && flag==0){flag=1;j=-1;}           if(flag==1 && j==index_2)return index-1;}}return -1;}
}

135

题目:

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。

你需要按照以下要求,给这些孩子分发糖果:

  • 每个孩子至少分配到 1 个糖果。
  • 相邻两个孩子评分更高的孩子会获得更多的糖果。

请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 

题目链接:135. 分发糖果 - 力扣(LeetCode)

思路:

好难想,既要比较左边,还要比较右边,最后取它两的最大值。

详情:代码随想录 (programmercarl.com)

代码:

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++) {candyVec[i] = (ratings[i] > ratings[i - 1]) ? candyVec[i - 1] + 1 : 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.mzph.cn/news/803239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ccf201512-1数位之和

charAt&#xff0c;与字符’0’,做差值。 import java.util.Scanner;public class Main3 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String num scanner.nextLine();char[] arr num.toCharArray();int sum 0;for(char c : arr){i…

tmux 替换 nohup

替换方案 tmux 训练PyTorch模型的时候一个基本步骤&#xff1a; [terminal]: tmux new -s model-ft # 创建一个会话&#xff0c;并设置会话名:model-ft [tmux]: conda activate your_env # 在tmux会话中&#xff0c;我们激活我们要使用的conda环境 [tmux]: pyth…

JVM_垃圾收集器

GC垃圾收集器 文章目录 GC垃圾收集器GC垃圾回收算法和垃圾收集器关系GC算法主要有以下几种四种主要的垃圾收集器SerialParallelCMSG1垃圾收集器总结查看默认垃圾收集器 默认垃圾收集器有哪些各垃圾收集器的使用范围部分参数说明 新生代下的垃圾收集器并行GC(ParNew)并行回收GC&…

【C++航海王:追寻罗杰的编程之路】探寻实用的调试技巧

目录 1 -> 什么是bug&#xff1f; 2 -> 调试是什么&#xff1f;有多重要&#xff1f; 2.1 -> 调试是什么&#xff1f; 2.2 -> 调试的基本步骤 2.3 -> Debug和Release的介绍 3 -> Windows环境调试介绍 3.1 -> 调试环境的准备 3.2 -> 学会快捷键…

:-1: error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

qt报错 错误1 : error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isnt set 错误1 : error: Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn’t set bug的现象:qtcreator无法通过点击pro文件来打开项目 方法:参考 根据上面的参考,我么找到…

【React】React hooks 清除定时器并验证效果

React hooks 清除定时器并验证效果 目录结构如下useTime hookClock.tsx使用useTime hookApp.tsx显示Clock组件显示时间&#xff08;开启定时器&#xff09;隐藏时间&#xff08;清除定时器&#xff09; 总结参考 目录结构如下 useTime hook // src/hooks/common.ts import { u…

如何批量获取商品详情数据(淘宝1688京东商品采集示例)

批量获取商品详情数据&#xff0c;尤其是在淘宝、1688和京东这样的电商平台上&#xff0c;通常涉及到网络爬虫技术。然而&#xff0c;需要注意的是&#xff0c;这些平台都有自己的反爬虫机制&#xff0c;直接爬取可能会违反其使用条款&#xff0c;甚至可能触犯法律。因此&#…

三角测量法恢复深度

参考&#xff1a;单目vo中的深度确定方法--三角测量_单目相机三角测量-CSDN博客 方法一&#xff1a;直接法 由于我们已经通过本质矩阵分解或者单应矩阵分解获得了R与t&#xff0c;此时想求的是两个特征点的深度 bool depthFromTriangulation(const SE3& T_search_ref,co…

电脑开机提示“no bootable device”,无法进入系统

当您的Windows 10电脑开机时提示“no bootable device”,这意味着计算机无法找到一个可以启动操作系统的设备。这个问题通常与硬件连接、BIOS设置、硬盘问题、引导扇区故障或系统文件损坏等有关。以下是一系列详细的解决步骤: 检查硬件连接:关闭电脑,拔掉电源线,打开机箱检…

如何创建Windows下google Chrome便携版?

创建google Chrome便携版教程 准备工作&#xff1a; 1&#xff0c;下载GoogleChromePortable启动器 2&#xff0c;下载谷歌浏览器 3&#xff0c;下载7-ZIP 解压提取器 用7zip解压GoogleChromePortable&#xff0c;得到GoogleChromePortable.exe启动器 解压谷歌浏览器 用7…

Java入门基础day29

day29 内部类 分类 非静态成员内部类 静态成员内部类 局部内部类 匿名内部类 概念 在一个类的内部&#xff0c;再定义一个完整的类 特点&#xff1a; 编译之后可以生成一个独立的字节码class文件 内部类可以直接访问外部类的私有成员&#xff0c;而不会破坏其封装性 可以为外…

Flutter之TabBar篇

总结了一下项目中用到的几种TabBar&#xff0c;针对不同的样式&#xff0c;有采用系统提供的&#xff0c;也有三方插件提供的&#xff0c;也有自定义的&#xff0c;效果如下&#xff08;后续如果遇到新的样式&#xff0c;会不间断地记录更新&#xff0c;避免重复造轮子…&#…

性能分析-数据库与磁盘知识

数据库 数据库&#xff0c;其实是数据库管理系统dbms。 数据库管理系统&#xff0c; 常见&#xff1a; 关系型数据库&#xff1a; mysql、pg、 库的表&#xff0c;表与表之间有关联关系&#xff1b; 表二维表统一标准的SQL&#xff08;不局限于CRUD&#xff09;非关系型数据…

ssm034学生请假系统+jsp

学生请假系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本学生请假系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…

C++11 新特性:std::array

std::array是 C11 中引入的容器类型&#xff0c;它封装了固定大小的数组&#xff0c;提供了类似于 STL 容器的接口&#xff0c;同时保持了 C 风格数组的性能特性。 与普通数组相比&#xff0c;std::array更安全、更易于使用&#xff0c;并且支持迭代器。以下是std::array提供的…

-webkit-input-placeholder的意思

-webkit-input-placeholder是一个CSS伪类选择器&#xff0c;用于设置表单输入字段的占位文本样式。-webkit-input-placeholder是Webkit浏览器私有的前缀&#xff0c;用于适用于Webkit内核的浏览器&#xff08;如Chrome和Safari&#xff09;。 使用-webkit-input-placeholder&a…

鸿蒙HarmonyOS开发实例:【简单时钟】

简单时钟 介绍 本示例通过使用[ohos.display]接口以及Canvas组件来实现一个简单的时钟应用。 效果预览 主页 使用说明 1.界面通过setInterval实现周期性实时刷新时间&#xff0c;使用Canvas绘制时钟&#xff0c;指针旋转角度通过计算得出。 例如&#xff1a;"2 * M…

Microsoft Visio 参与者 [actor] - 人的形状图标

Microsoft Visio 参与者 [actor] - 人的形状图标 1. 更多形状 -> 搜索形状2. 参与者References 1. 更多形状 -> 搜索形状 2. 参与者 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

网络入门基础:从概念到实践

导言 网络已经成为了我们日常生活和工作中不可或缺的一部分&#xff0c;无论是用于沟通、学习、娱乐还是商务交易&#xff0c;网络都扮演着至关重要的角色。本文将介绍网络的基础知识&#xff0c;从概念到实践&#xff0c;帮助初学者了解网络的基本原理和构成&#xff0c;以便…

【简单讲解下如何Java中文乱码浅析及解决方案】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…