【每日一题Day204】LC1330翻转子数组得到最大的数组值 | 数学

简介: 【每日一题Day204】LC1330翻转子数组得到最大的数组值 | 数学

翻转子数组得到最大的数组值【LC1330】

给你一个整数数组 nums 。「数组值」定义为所有满足 0 <= i < nums.length-1|nums[i]-nums[i+1]| 的和。

你可以选择给定数组的任意子数组,并将该子数组翻转。但你只能执行这个操作 一次

请你找到可行的最大 数组值 

emm…早上起来发烧了,然后去了医院发现阳了,之前那么多人阳都没有阳过。也许是拔完智齿抵抗力下降就阳了?

这种下次遇到也不会的题目就不过多研究了

  • 思路:数学题
    分情况讨论,化简不等式【略】
    灵神题解,不是我能做出来的
  • 实现
class Solution {
    public int maxValueAfterReverse(int[] nums) {
        int base = 0, d = 0, n = nums.length;
        int mx = Integer.MIN_VALUE, mn = Integer.MAX_VALUE;
        for (int i = 1; i < n; i++) {
            int a = nums[i - 1], b = nums[i];
            int dab = Math.abs(a - b);
            base += dab;
            mx = Math.max(mx, Math.min(a, b));
            mn = Math.min(mn, Math.max(a, b));
            d = Math.max(d, Math.max(Math.abs(nums[0] - b) - dab, // i=0
                                     Math.abs(nums[n - 1] - a) - dab)); // j=n-1
        }
        return base + Math.max(d, 2 * (mx - mn));
    }
}
作者:灵茶山艾府
链接:https://leetcode.cn/problems/reverse-subarray-to-maximize-array-value/solutions/2266500/bu-hui-hua-jian-qing-kan-zhe-pythonjavac-c2s6/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)
目录
相关文章
|
7月前
|
索引
【每日一题Day131】LC1144递减元素使数组呈锯齿状 | 贪心+枚举
【每日一题Day131】LC1144递减元素使数组呈锯齿状 | 贪心+枚举
52 0
|
7月前
【每日一题Day292】LC1572矩阵对角线元素的和 模拟
【每日一题Day292】LC1572矩阵对角线元素的和 模拟
31 0
|
7月前
|
存储
【每日一题Day253】LC2两数相加 | 链表模拟
【每日一题Day253】LC2两数相加 | 链表模拟
28 0
|
7月前
【每日一题Day289】LC1749任意子数组和的绝对值的最大值 | dp
【每日一题Day289】LC1749任意子数组和的绝对值的最大值 | dp
52 0
|
7月前
【每日一题Day155】LC1630等差子数组 | 枚举+排序
【每日一题Day155】LC1630等差子数组 | 枚举+排序
46 0
|
7月前
|
算法 测试技术 C#
【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值
【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值
|
存储 算法
【LeetCode】每日一题&最后一个单词的长度&投票法求解多数元素&异或操作符巧解只出现一次的数字&整数反转
【LeetCode】每日一题&最后一个单词的长度&投票法求解多数元素&异或操作符巧解只出现一次的数字&整数反转
|
7月前
|
存储 算法 Java
Leetcode算法系列| 7. 整数反转
Leetcode算法系列| 7. 整数反转
|
7月前
【每日一题Day122】LC1237找出给定方程的正整数解 | 双指针 二分查找
【每日一题Day122】LC1237找出给定方程的正整数解 | 双指针 二分查找
47 0
|
7月前
【每日一题Day350】LC2652倍数求和 | 数学+容斥原理
【每日一题Day350】LC2652倍数求和 | 数学+容斥原理
47 0