OJ-0718

示例1

input
3
1 1 1
output
0

示例2

input
3
3 7 10
output
1

示例3

input
4
3 7 10 16
output
3

题解1:List

{public static void main(String[] args) {Scanner in = new Scanner(System.in);int num = in.nextInt();List<Integer> list = new ArrayList<>(num);for (int i = 0; i < num; i++) {list.add(in.nextInt());}while (list.size() >= 3) {list.sort((o1, o2) -> o2.compareTo(o1));int x = list.remove(0);int y = list.remove(0);int z = list.remove(0);int remain = 0;if (x == y && y != z) {remain = y - z;}if (x != y && y == z) {remain = x - y;}if (x != y && y != z) {remain = Math.abs((x - y) - (y - z));}if (remain > 0) {list.add(remain);}}int res;if (list.size() == 2) {res = Math.max(list.get(0), list.get(1));} else if (list.size() == 1) {res = list.get(0);} else {res = 0;}System.out.println(res);}
}

题解2:优先队列

public static void main(String[] args) {Scanner in = new Scanner(System.in);int num = in.nextInt();PriorityQueue<Integer> queue = new PriorityQueue<>((o1, o2) -> o2.compareTo(o1));for (int i = 0; i < num; i++) {queue.offer(in.nextInt());}while (queue.size() >= 3) {int x = queue.poll();int y = queue.poll();int z = queue.poll();int remain = 0;if (x == y && y != z) {remain = y - z;}if (x != y && y == z) {remain = x - y;}if (x != y && y != z) {remain = Math.abs((x - y) - (y - z));}if (remain > 0) {queue.offer(remain);}}int res;if (queue.size() == 2 || queue.size() == 1) {res = queue.poll();} else {res = 0;}System.out.println(res);}

参考

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int count = in.nextInt();int[] nums = new int[count];for (int i = 0; i < count; ++i) {nums[i] = in.nextInt();}if (count == 0){System.out.println(0);}else if (count == 1){System.out.println(nums[0]);}else if (count == 2){System.out.println(Math.max(nums[0], nums[1]));} else {System.out.println(get_result(nums));}return;}public static int get_result(int[] nums){ ArrayList<Integer> new_nums = new ArrayList<>();for (int i = 0; i < nums.length; ++i) {new_nums.add(nums[i]);}while(new_nums.size() >= 2){Collections.sort(new_nums, Collections.reverseOrder());ArrayList<Integer> nums2 = new ArrayList<>();int[] nums3 = new int[3];for (int i=0;i<3;i++){nums3[i] = nums[i];}if (nums3[0] == nums3[1] && nums3[1] != nums3[2]){nums2.add(Math.abs(nums3[2] - nums3[0]));} else if (nums3[0] != nums3[1] && nums3[1] == nums3[2]){nums2.add(Math.abs(nums3[1] - nums3[0]));} else if (nums3[0] != nums3[1] && nums3[1] != nums3[2]){nums2.add(Math.abs(Math.abs(nums3[2] - nums3[1]) - Math.abs(nums3[1] - nums3[0])));}ArrayList<Integer> temp = new ArrayList<>();for (int i=0;i<nums2.size();i++){temp.add(nums2.get(i));}for (int i=3;i<new_nums.size();i++){temp.add(new_nums.get(i));}new_nums = temp;}if (new_nums.size() == 0){return 0;} else if (new_nums.size() == 2){return Math.max(new_nums.get(0) , new_nums.get(1));} else {return new_nums.get(0);}}
}

https://blog.csdn.net/weixin_52908342/article/details/136448221

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

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

相关文章

【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.

问题现象 源码编译安装nginx时&#xff0c;执行./configure …… --with-http_ssl_module 命令安装https模块&#xff0c;需要用到openssl&#xff0c;由于机器缺少openssl库&#xff0c;报如下错误。 …… checking for openat(), fstatat() ... found checking for getaddr…

开源模型应用落地-FastAPI-助力模型交互-进阶篇(三)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理&#xff0c;使应用程序能够处理各种不同的请求场景&#xff0c;提高应用程序的灵活性和可扩展性。 在数据验证和转换方面&#xff0c;高级用法提供了更精细和准确的控制&#…

Go网络编程-RPC程序设计

gRPC 通信 RPC 介绍 RPC, Remote Procedure Call&#xff0c;远程过程调用。与 HTTP 一致&#xff0c;也是应用层协议。该协议的目标是实现&#xff1a;调用远程过程&#xff08;方法、函数&#xff09;就如调用本地方法一致。 如图所示&#xff1a; 说明&#xff1a; Servi…

windows下安装启动运行MinIO

MinIO服务器本身是采用Go语言开发的&#xff1b; 编程操作MinIO服务器的客户端有很多&#xff1a; Go&#xff0c;Python&#xff0c;Java&#xff0c;.NET&#xff0c;JavaScript&#xff0c;Haskell&#xff0c;C 官方文档&#xff1a;https://min.io/docs/minio/linux/dev…

MySQL下载安装使用教程图文教程(超详细)

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们使…

Jenkins-zookeeper-docker-xxljob-rancher

文章目录 Jenkins实战1 新建任务需要的配置pipeline Zookeeper基础 Docker基础实操windows11 docker mysql DockerhouseDockerhubxxl-Job基础实战 Rancher基础思考 实战1 Rancher的某个namespace的scale为0 Jenkins 实战 1 新建任务需要的配置pipeline 该代码是Jenkinsfile&…

版本控制工具

版本控制工具是用于记录代码文件变化历史、方便查阅特定版本修改情况的系统&#xff0c;一般分为集中式和分布式两种。以下是一些常见的版本控制工具&#xff1a; 集中式版本控制工具 Subversion&#xff08;SVN&#xff09; 简介&#xff1a;Subversion是一种集中式版本控制…

《基于 CDC、Spark Streaming、Kafka 实现患者指标采集》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

如何获得Cesium的TileSet并设置本地服务器的Url

一.总体思路 首先使用管理者获得TileSet&#xff0c;通过JSON文件读写&#xff0c;调用对应的Cesium内部提供的函数。 UE5中Json文件的读取与解析 - 知乎 (zhihu.com) 不太了解JSON的可以学习这个。 二.具体实现 1.创建Actor,并且 如何获得Cesium的TileSet,设置本地Url 一…

关于Flutter的build

框架是什么&#xff1f; 就是你按照约定去写 具体什么时候调用什么&#xff0c;他说了算 你只能按照它的规则去编写你的业务代码&#xff0c;然后就一切正常&#xff0c;你要是不遵循他的方法&#xff0c;就出错 就像你在 viewDidLoad 中直接把资源销毁&#xff0c;然后这个…

实现了一个心理测试的小程序,微信小程序学习使用问题总结

1. 如何在跳转页面中传递参数 &#xff0c;在 onLoad 方法中通过 options 接收 2. radio 如何获取选中的值&#xff1f; bindchange 方法 参数e, e.detail.value 。 如果想要获取其他属性&#xff0c;使用data-xx 指定&#xff0c;然后 e.target.dataset.xx 获取。 3. 不刷…

全国媒体邀约,主流媒体到场出席采访报道

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 全国媒体邀约&#xff0c;确保主流媒体到场出席采访报道&#xff0c;可以带来一系列的好处&#xff0c;这些好处不仅能够增强活动的可见度&#xff0c;还能对品牌或组织的长期形象产生积…

【19】读感 - 架构整洁之道(一)

概述 《架构整洁之道》一书中有提到设计和架构的感念&#xff0c;它们究竟是什么&#xff1f;书是这么说的&#xff0c;它们的层次不一样&#xff0c;架构更“高层级”的说法&#xff0c;这类讨论一般都把“底层”的实现细节排除在外。而设计往往指代的具体的系统底层组织结构…

遍历Pandas DataFrame数据的行:方法与实践

遍历Pandas DataFrame数据的行&#xff1a;方法与实践 在数据分析和处理过程中&#xff0c;我们经常需要遍历Pandas DataFrame中的每一行数据。Pandas提供了多种方法来满足这一需求。本文将介绍几种常见的遍历DataFrame行的方法&#xff0c;并讨论它们的使用场景和注意事项。 …

将iPad 作为Windows电脑副屏的几种方法(二)

将iPad 作为Windows电脑副屏的几种方法&#xff08;二&#xff09; 1. 前言2. EV 扩展屏2.1 概述2.2 下载、安装、连接教程2.3 遇到的问题和解决方法2.3.1 平板连接不上电脑 3. Twomon SE3.1 概述3.2 下载安装教程 4. 多屏中心&#xff08;GlideX&#xff09;4.1 概述4.2 下载安…

基于FPGA的多路选择器

目录 一、组合逻辑 二、多路选择器简介&#xff1a; 三、实战演练 摘要&#xff1a;本实验设计并实现了一个简单的多路选择器&#xff0c;文章后附工程代码 一、组合逻辑 组合逻辑是VerilogHDL设计中的一个重要组成部分。从电路本质上讲&#xff0c;组合逻辑电路的特点是输…

数据结构(单链表算法题)

1.删除链表中等于给定值 val 的所有节点。 OJ链接 typedef struct ListNode ListNode;struct ListNode {int val;struct ListNode* next; };struct ListNode* removeElements(struct ListNode* head, int val) {//创建新链表ListNode* newhead, *newtail;newhead newtail N…

Vue3 之 computed 属性,实现日历翻月份功能

1. Vue3中的computed函数 1.1. 什么是computed&#xff1f; computed属性是Vue3中的一个响应式计算属性&#xff0c;它可以根据其他响应式数据的变化而自动更新其自身的值。computed属性可以接收一个计算函数&#xff0c;并在计算函数中使用其他响应式数据的值进行计算。当任何…

verilog bug记录——正点原子spi_drive存在的问题

verilog bug记录——正点原子spi_drive存在的问题 问题概述代码修改—spi_drive.v遗留问题 问题概述 因为项目需求&#xff0c;需要利用spi对flash进行擦除和写入操作&#xff0c;所使用的开发板是正电原子的达芬奇开发板&#xff0c;我事先往Flash里面存了两个bit&#xff0c…

全国产服务器主板:搭载飞腾FT2000+/64处理器的高性能加固服务器

近期很多朋友咨询全国产化的服务器主板。搭载的是飞腾FT-2000/64的全国产化服务器主板。他的主要特点是&#xff1a;①丰富的PCIe、千兆以太网、SATA接口&#xff0c;可用作数据处理、存储、通信服务器&#xff1b;②​​​​​​​板载独立显示芯片&#xff0c;对外HDMI/VGA/L…