【贪心算法3】

力扣1005.k次取反后最大化的数组和

链接: link

思路

既然要求最大和,那么不妨先给数组排个序,如果有负数,先处理负数从前往后给数组取反,如果负数处理完后k还有次数,此时数组全是正数了,只需要对第一个元素取反即可,无非就是奇数次或者偶数次取反操作。最终求和即可。

方法1:

class Solution {public int largestSumAfterKNegations(int[] nums, int k) {if (nums.length == 1)return nums[0];int ans = 0;Arrays.sort(nums);// 先处理负数for (int i = 0; i < nums.length && k > 0; i++) {if (nums[i] < 0) {nums[i] = -nums[i];k--;}}// 如果k还有次数if (k % 2 == 1) {Arrays.sort(nums);nums[0] = -nums[0];}for (int num : nums) {ans += num;}return ans;}
}

相似题型

134.加油站
链接: link

class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int start = 0;int curSum = 0;int totalSum = 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;}}// 总共gas < cost 一定不能跑完一圈if (totalSum < 0) {return -1;}return start;}
}

135.分发糖果
链接: link

class Solution {public int candy(int[] ratings) {int res = 0;int[] candyList = new int[ratings.length];Arrays.fill(candyList, 1);// 从左向右比较左孩子for (int i = 1; i < ratings.length; i++) {if (ratings[i] > ratings[i - 1]) {candyList[i] = candyList[i - 1] + 1;}}// 从右向左比较右孩子for (int i = ratings.length - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1]) {candyList[i] = Math.max(candyList[i], candyList[i + 1] + 1);}}for (int c : candyList) {res += c;}return res;}
}

860.柠檬水找零
链接: link

class Solution {public boolean lemonadeChange(int[] bills) {int m5 = 0, m10 = 0;for (int i = 0; i < bills.length; i++) {if (bills[i] == 5) {m5++;} else if (bills[i] == 10) {m10++;m5--;} else if (bills[i] == 20) {if (m10 != 0) {m10--;m5--;} else {m5 -= 3;}}if (m5 < 0 || m10 < 0) {return false;}}return true;}
}

406.根据身高重建队列
链接: link

class Solution {public int[][] reconstructQueue(int[][] people) {// 对身高排序Arrays.sort(people, (a, b) -> {if (a[0] == b[0])return a[1] - b[1]; // a-b 是升序排列,按照k升序return b[0] - a[0];// 否则按照升高降序排列});List<int[]> que = new ArrayList<>();for (int i = 0; i < people.length; i++) {que.add(people[i][1], people[i]);}return que.toArray(new int[people.length][]);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71974.shtml

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

相关文章

自然语言处理中的语音识别技术:从声波到语义的智能解码

引言 语音识别&#xff08;Automatic Speech Recognition, ASR&#xff09;是自然语言处理&#xff08;NLP&#xff09;的关键分支&#xff0c;旨在将人类语音信号转化为可处理的文本信息。随着深度学习技术的突破&#xff0c;语音识别已从实验室走向日常生活&#xff0c;赋能…

1688店铺所有商品数据接口详解

​​一、接口概述淘宝开放平台提供 1688.items.onsale.get/taobao.item_search_shop 接口&#xff0c;可批量获取店铺在售商品列表&#xff0c;包含商品 ID、标题、价格、销量、图片等核心信息。该接口适用于商品库管理、竞品监控、数据分析等场景 ​二、接口调用流程 前期准…

ArduPilot开源代码之AP_OSD

ArduPilot开源代码之AP_OSD 1. 源由2. 简介3. 补丁4. 框架设计4.1 启动代码 (AP_OSD::init)4.2 任务代码 (AP_OSD::osd_thread)4.3 实例初始化 (AP_OSD::init_backend) 5. 重要例程5.1 AP_OSD::update_stats5.2 AP_OSD::update_current_screen5.3 AP_OSD::update_osd 6. 总结7.…

qt open3dAlpha重建

qt open3dAlpha重建 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionAlpha_triggered();//alpha重建 void MainWindow::

Deepseek可以通过多种方式帮助CAD加速工作

自动化操作&#xff1a;通过Deepseek的AI能力&#xff0c;可以编写脚本来自动化重复性任务。例如&#xff0c;使用Python脚本调用Deepseek API&#xff0c;在CAD中实现自动化操作。 插件开发&#xff1a;结合Deepseek进行二次开发&#xff0c;可以创建自定义的CAD插件。例如&a…

Centos的ElasticSearch安装教程

由于我们是用于校园学习&#xff0c;所以最好是关闭防火墙 systemctl stop firewalld systemctl disable firewalld 个人喜欢安装在opt临时目录&#xff0c;大家可以随意 在opt目录下创建一个es-standonely-docker目录 mkdir es-standonely-docker 进入目录编辑yml文件 se…

c++ 调用 gurobi 库,cmake,mac

gurobi 一般使用 python 调用&#xff0c;官方的培训会议及资料大部分也都基于 python。 由于最近上手了 c&#xff0c;因此想试试 c 怎么调用 gurobi。但我发现&#xff0c;c 调用第三方库比 python 或 java 要复杂不少。python 中直接 import 第三方库&#xff0c;java 加载…

Python基于Django的医用耗材网上申领系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

Python中很常用的100个函数整理

Python 内置函数提供了强大的工具&#xff0c;涵盖数据处理、数学运算、迭代控制、类型转换等。本文总结了 100 个常用内置函数&#xff0c;并配备示例代码&#xff0c;提高编程效率。 1. abs() 取绝对值 print(abs(-10)) # 10 2. all() 判断所有元素是否为真 print(all([…

Python毕业设计选题:基于django+vue的疫情数据可视化分析系统

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 员工管理 疫情信息管理 检测预约管理 检测结果…

C#程序结构及基本组成说明

C# 程序的结构主要由以下几个部分组成,以下是对其结构的详细说明和示例: 1. 基本组成部分 命名空间 (Namespace) 用于组织代码,避免命名冲突。通过 using 引入其他命名空间。 using System; // 引入 System 命名空间类 (Class) C# 是面向对象的语言,所有代码必须定义在类或…

Python 编程题 第八节:字符串变形、压缩字符串、三个数的最大乘积、判定字符是否唯一、IP地址转换

字符串变形 swapcase()方法将字符串大小写转换&#xff1b;split()方法将字符串以括号内的符号分隔并以列表形式返回 sinput() ls.split(" ") ll[::-1] s"" for i in l:ai.swapcase()sas" " print(s[0:len(s)-1]) 压缩字符串 很巧妙的方法 …

大语言模型学习--向量数据库基础知识

1.向量 向量是多维数据空间中的一个坐标点。 向量类型 图像向量 文本向量 语音向量 Embedding 非结构化数据转换为向量过程 通过深度学习训练&#xff0c;将真实世界离散数据&#xff0c;投影到高维数据空间上&#xff0c;通过数据在空间中间的距离体现真实世界的相似度 V…

项目工坊 | Python驱动淘宝信息爬虫

目录 前言 1 完整代码 2 代码解读 2.1 导入模块 2.2 定义 TaoBao 类 2.3 search_infor_price_from_web 方法 2.3.1 获取下载路径 2.3.2 设置浏览器选项 2.3.3 反爬虫处理 2.3.4 启动浏览器 2.3.5 修改浏览器属性 2.3.6 设置下载行为 2.3.7 打开淘宝登录页面 2.3.…

蓝桥杯题型

蓝桥杯 蓝桥杯题型分类语法基础艺术与篮球&#xff08;日期问题&#xff09;时间显示&#xff08;时间问题&#xff09;跑步计划&#xff08;日期问题&#xff09;偶串(字符&#xff09;最长子序列&#xff08;字符&#xff09;字母数&#xff08;进制转换&#xff09;6个0&…

【C语言】文件操作篇

目录 文件的基本概念文本文件和二进制文件的差异 文件指针FILE 结构体文件指针的初始化和赋值 文件打开与关闭常见操作文件的打开文件的关闭 常见问题打开文件时的路径问题打开文件失败的常见原因fclose 函数的重要性 文件读写操作常见操作字符读写字符串读写格式化读写二进制读…

【leetcode hot 100 21】合并两个有序链表

解法一&#xff1a;新建一个链表存放有序的合并链表。当list1和list2至少有一个非空时&#xff0c;返回非空的&#xff1b;否则找出两个链表的最小值作为新链表的头&#xff0c;然后依次比较两链表&#xff0c;每次都先插入小的值。 /*** Definition for singly-linked list.*…

Ubuntu 24.04.2 安装 PostgreSQL 16 、PostGIS 3

安装 PostgreSQL 16 apt install postgresql-16passwd postgres&#xff0c;修改 postgres 用户密码su postgrespsql -U postgres, 以 postgres 的身份登录数据库alter user postgres with password abc123;\q 退出/etc/postgresql/16/main/postgresql.conf 可修改 #listen_ad…

Spring Boot框架总结(超级详细)

前言 本篇文章包含Springboot配置文件解释、热部署、自动装配原理源码级剖析、内嵌tomcat源码级剖析、缓存深入、多环境部署等等&#xff0c;如果能耐心看完&#xff0c;想必会有不少收获。 一、Spring Boot基础应用 Spring Boot特征 概念&#xff1a; 约定优于配置&#…

postgresql14编译安装脚本

#!/bin/bash####################################readme################################### #先上传postgresql源码包&#xff0c;再配置yum源&#xff0c;然后执行脚本 #备份官方yum源配置文件&#xff1a; #cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS…