网站首页 > java教程 正文
题目:
给你一个整数数组 nums 。一个子数组 [numsl, numsl+1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl + numsl+1 + ... + numsr-1 + numsr) 。

请你找出 nums 中 和的绝对值 最大的任意子数组(可能为空),并返回该 最大值 。
abs(x) 定义如下:
如果 x 是负整数,那么 abs(x) = -x 。
如果 x 是非负整数,那么 abs(x) = x 。
示例 1:
输入:nums = [1,-3,2,3,-4]
输出:5
解释:子数组 [2,3] 和的绝对值最大,为 abs(2+3) = abs(5) = 5 。
示例 2:
输入:nums = [2,-5,1,-4,3,-2]
输出:8
解释:子数组 [-5,1,-4] 和的绝对值最大,为 abs(-5+1-4) = abs(-8) = 8 。
提示:
1 <= nums.length <= 10^5
-104 <= nums[i] <= 10^4
java代码:
class Solution {
    public int maxAbsoluteSum(int[] nums) {
        long max = Math.max(nums[0], 0);
        long min = Math.min(nums[0], 0);
        long sum = 0;
        long ans = Integer.MIN_VALUE;
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i];
            long cur = Math.max(Math.abs(sum - max), Math.abs(sum - min));
            ans = Math.max(cur, ans);
            max = Math.max(max, sum);
            min = Math.min(min, sum);
        }
        return (int) ans;
    }
}
猜你喜欢
- 2024-10-24 Bigo的Java面试,我挂在了第三轮技术面上...
 - 2024-10-24 纯干货|盘点Java常见的30个误区与细节
 - 2024-10-24 JAVA中红黑树(javahashmap红黑树)
 - 2024-10-24 一文让你理解java中的类加载器(java类加载器的作用)
 - 2024-10-24 初识java—(三十五)Math类、Random类和BigDecimal类
 - 2024-10-24 Java高级进阶-从计算机底层解析左移、右移、无符号右移
 - 2024-10-24 终于有人把Git最火Java全套详细笔记(吐血放出)资料给分享出来了
 - 2024-10-24 Java 的流程控制是什么样子的(java中的流程控制语句有哪些)
 - 2024-10-24 Java常用内置函数(java内部类怎么调用)
 - 2024-10-24 Java编程——数据库两大神器:索引和锁
 
欢迎 你 发表评论:
- 最近发表
 
- 标签列表
 - 
- java反编译工具 (77)
 - java反射 (57)
 - java接口 (61)
 - java随机数 (63)
 - java7下载 (59)
 - java数据结构 (61)
 - java 三目运算符 (65)
 - java对象转map (63)
 - Java继承 (69)
 - java字符串替换 (60)
 - 快速排序java (59)
 - java并发编程 (58)
 - java api文档 (60)
 - centos安装java (57)
 - java调用webservice接口 (61)
 - java深拷贝 (61)
 - 工厂模式java (59)
 - java代理模式 (59)
 - java.lang (57)
 - java连接mysql数据库 (67)
 - java重载 (68)
 - java 循环语句 (66)
 - java反序列化 (58)
 - java时间函数 (60)
 - java是值传递还是引用传递 (62)
 
 

本文暂时没有评论,来添加一个吧(●'◡'●)