分割数组的最大差值 - 华为OD统一考试

分割数组的最大差值 - 华为OD统一考试

OD统一考试

分值: 100分

题解: Java / Python / C++

alt

题目描述

给定一个由若干整数组成的数组nums ,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组),分别对子数组求和得到两个值.计算这两个值的差值,请输出所有分割方案中,差值最大的值。

输入描述

第一行输入数组Q中元素个数n,1< n < 100000

第二行输入数字序列,以空格进行分隔,数字取值为4字节整数

输出描述

输出差值的最大取值

示例1

输入:
6
1 -2 3 4 -9 7输出:
10

题解

简单模拟题,需要小心的是数据范围。

Java

import java.util.Scanner;
/*** @author code5bug*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] nums = new int[n];long sum = 0;for (int i = 0; i < n; i++) {int num = scanner.nextInt();sum += num;nums[i] = num;}long maxAbs = 0, leftSum = 0;for (int i = 0; i < n - 1; i++) {leftSum += nums[i];// rightSum = sum - leftSum, 差值 = rightSum - leftSum = Math.abs(sum - leftSum)maxAbs = Math.max(maxAbs, Math.abs(sum - 2 * leftSum));}System.out.println(maxAbs);}
}

Python

n = int(input())
nums = list(map(int, input().split()))sum_val,max_abs,left_sum = sum(nums),0,0for i in range(n - 1):left_sum += nums[i]# right_sum = sum - left_sum, 差值 = right_sum - left_sum = abs(sum - left_sum)max_abs = max(max_abs, abs(sum_val - 2 * left_sum))print(max_abs)

C++

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() {long long sum = 0;int n, num;cin >> n;vector<int> nums(n);for(int i=0; i<n; i++) {cin >> num;sum += num;nums[i] = num;}long long max_abs = 0, left_sum = 0;for(int i=0; i<n-1; i++) {left_sum += nums[i];// right_sum = sum - left_sum,  差值 = right_sum - left_sum = abs(sum - left_sum)max_abs = max(max_abs, abs(sum - 2 * left_sum));}cout << max_abs << endl;
}

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

第三部分 连续型需要的积分

目录 温馨提示&#xff1a; 求积分 求分段函数在确定区间的定积分 方法&#xff1a; 例1 例2 例3 例4 例5 例6 例7 求分段函数在到未知数的定积分 方法&#xff1a; 例8 求简单的二重积分 方法&#xff1a; 例9 例10 例11 求f(x,y)的二重积分 方法&#xff1a; 例12 例13 …

Langchain-Chatchat开源库使用的随笔记(一)

笔者最近在研究Langchain-Chatchat&#xff0c;所以本篇作为随笔记进行记录。 最近核心探索的是知识库的使用&#xff0c;其中关于文档如何进行分块的详细&#xff0c;可以参考笔者的另几篇文章&#xff1a; 大模型RAG 场景、数据、应用难点与解决&#xff08;四&#xff09;R…

Go 跨平台编译

1. 简介 跨平台编译&#xff0c;也称为交叉编译&#xff0c;是指在一个平台上生成另一个平台上的可执行文件。这个过程涉及到一个体系架构&#xff08;Architecture&#xff09;和操作系统&#xff08;Operating System&#xff09;两个概念。同一个体系架构可以运行不同的操作…

jvm调优

一 程序员的战场&#xff08;内存空间&#xff09; 自从c与c换成用java开发后发现写代码的速度大大提升而难度也大大的降低了&#xff0c;但发现对内存的管理开始模糊了&#xff0c;心里总有疑问写的东西运行时会占用了多少内存空间&#xff1f;内存占用空间可以说一直是对开发…

怎么解决 Nginx反向代理加载速度慢?

Nginx反向代理加载速度慢可能由多种原因引起&#xff0c;以下是一些可能的解决方法&#xff1a; 1&#xff0c;网络延迟&#xff1a; 检查目标服务器的网络状况&#xff0c;确保其网络连接正常。如果目标服务器位于不同的地理位置&#xff0c;可能会有较大的网络延迟。考虑使用…

Good Bye 2023

Good Bye 2023 Good Bye 2023 A. 2023 题意&#xff1a;序列a中所有数的乘积应为2023&#xff0c;现在给出序列中的n个数&#xff0c;找到剩下的k个数并输出&#xff0c;报告不可能。 思路&#xff1a;把所有已知的数字乘起来&#xff0c;判断是否整除2023&#xff0c;不够…

ajax 下载文件(excel导出)

<button class"btn btn-danger m-r-5" id"exportClick" style"width: 100px;margin-left:10px;">日报表</button> ajax 请求后端 $("#exportClick").click(function () {var url ${basePath}/rest/cart/exportconsole.l…

Android Studio如何创建尺寸大小及API通用的模拟器

目录 前言 一、操作步骤 二、总结 三、更多资源 前言 在开发移动应用程序的过程中&#xff0c;使用模拟器进行测试是一种常见和方便的方式。Android Studio是一款功能强大的集成开发环境&#xff0c;它提供了创建和管理模拟器的功能。在本文中&#xff0c;我们将介绍如何创…

qs.stringify 使用arrayFormat属性 + allowDots的数据处理 - 附示例

qs&#xff1a;将url中的参数转为对象&#xff1b;将对象转为url参数形式 一、介绍 1、官方文档&#xff1a; https://github.com/ljharb/qs https://github.com/ljharb/qshttps://github.com/ljharb/qs 二、准备工作 1、安装依赖包 npm install qs --save 2、示例版本 &…

英飞凌TC3xx之一起认识GTM系列(六)如何实现GTM与VADC关联的配置

英飞凌TC3xx之一起认识GTM系列(六)如何实现GTM与VADC关联的配置 1 GTM与ADC的接口2 GTM与VADC的连接2.1 VADC 到 GTM 的连接2.1.1 简要介绍2.1.2 应用举例2.2 EVADC到 GTM的连接2.2.1 应用举例3 总结本文介绍实现GTM与VADC的连接性的相关寄存器配置。 1 GTM与ADC的接口 由英…

Autodesk Maya各版本安装指南

链接地址如下&#xff1a; https://pan.baidu.com/s/1Fg7MvUJS0tl5t2XAwMK9xg?pwd0531 1.鼠标右击【Maya2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Maya2024(64bit)】。 2.打开解压后的文件夹&#xff0c;双击打开【Setu…

vue-springboot基于JavaWeb的宠物店兽医站管理系统

ide工具&#xff1a;IDEA 或者eclipse 编程语言: java 数据库: mysql5.7 框架&#xff1a;ssmspringboot都有 前端&#xff1a;vue.jsElementUI 详细技术&#xff1a;HTMLCSSJSspringbootSSMvueMYSQLMAVEN 数据库工具&#xff1a;Navicat结合现有兽医站体系的特点&#xff0c;运…

Android 实现 Slots 游戏旋转效果

文章目录 前言一、效果展示二、代码实现1.UI布局2.SlotAdapter2.SlotsActivity 总结 前言 slots游戏&#xff1a; Slots游戏是一种极具流行度的赌博和娱乐形式&#xff0c;通常被称为老虎机或水果机。它们在赌场、线上游戏平台和手机应用中广泛存在。一般这类游戏都使用Unity…

MySQL例行检查

MySQL例行检查 1.实例例行检查1.1线程1.2索引1.3临时表1.4连接数1.5BINLOG1.6锁1.7WAIT事件1.8MySQL状态 2.事务与锁例行检查2.1查看索引的cardinality2.2查看是否存在事务阻塞现象2.3查看事务执行时长以及执行的所有SQL2.4事务与锁 3.库表例行检查3.1查看缺失主键的表3.2冗余索…

C# 给方形图片切圆角

写在前面 在有些场景中&#xff0c;给图片加上圆角处理会让视觉效果更美观。 代码实现 /// <summary>/// 将图片处理为圆角/// </summary>/// <param name"image"></param>/// <returns></returns>private Image DrawTranspar…

自动驾驶学习笔记(二十四)——车辆控制开发

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 控制算法 控制标定 控制协议…

《深入理解JAVA虚拟机笔记》并发与线程安全原理

除了增加高速缓存之外&#xff0c;为了使处理器内部的运算单元能尽量被充分利用&#xff0c;处理器可能对输入代码进行乱序执行&#xff08;Out-Of-Order Execution&#xff09;优化。处理器会在计算之后将乱序执行的结果重组&#xff0c;保证该结果与顺序执行的结果一致&#…

PyTorch常用工具(1)数据处理

文章目录 前言1 数据处理1.1 Dataset1.2 DataLoader 前言 在训练神经网络的过程中需要用到很多的工具&#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块&#xff0c;合理使用这些工具可以极大地提高编程效率。 由于内容较多&am…

Java-枚举

基本概念 数据类型&#xff1a; 基本数据类型&#xff1a;有8个引用数据类型&#xff1a;数组[]、类class、抽象类abstract class、接口、枚举enum、注解interface 枚举的应用场景&#xff1a; 当一个类中的对象是确定的时候&#xff0c;可以使用枚举&#xff0c;例如&#x…

C++ BuilderXE10 关于Intraweb关于IWTemplateProcessorHTML1操作

1、端口设置,port参数修改端口号。 2、初始化设置成ciMultiThreaded。这样可以避免ADO组件的加载错误。 3、IWTemplateProcessorHTML1设置&#xff0c; IWForm1->LayoutMgr IWTemplateProcessorHTML1;//关联模板(IWForm1. html) IWTemplateProcessorHTML1->RenderStyles…