文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你两个长度相等的整数数组,返回下面表达式的最大值

|arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j|

其中下标 i,j 满足 0 <= i, j < arr1.length

示例 1:
输入:arr1 = [1,2,3,4], arr2 = [-1,4,5,6]
输出:13示例 2:
输入:arr1 = [1,-2,-5,0,10], arr2 = [0,-2,-1,-7,-4]
输出:20提示:
2 <= arr1.length == arr2.length <= 40000
-10^6 <= arr1[i], arr2[i] <= 10^6

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-of-absolute-value-expression
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

只有这8种可能
arr1[i]−arr1[j]+arr2[i]−arr2[j]+i−j;−arr1[i]+arr1[j]−arr2[i]+arr2[j]−i+j;−arr1[i]+arr1[j]+arr2[i]−arr2[j]+i−j;arr1[i]−arr1[j]−arr2[i]+arr2[j]+i−j;arr1[i]−arr1[j]+arr2[i]−arr2[j]−i+j;−arr1[i]+arr1[j]−arr2[i]+arr2[j]+i−j;arr1[i]−arr1[j]−arr2[i]+arr2[j]−i+j;−arr1[i]+arr1[j]+arr2[i]−arr2[j]−i+j;arr1[i] - arr1[j] + arr2[i] - arr2[j] + i - j;\\ -arr1[i] + arr1[j] - arr2[i] + arr2[j] - i + j;\\ -arr1[i] + arr1[j] + arr2[i] - arr2[j] + i - j;\\ arr1[i] - arr1[j] - arr2[i] + arr2[j] + i - j;\\ arr1[i] - arr1[j] + arr2[i] - arr2[j] - i + j;\\ -arr1[i] + arr1[j] - arr2[i] + arr2[j] + i - j;\\ arr1[i] - arr1[j] - arr2[i] + arr2[j] - i + j;\\ -arr1[i] + arr1[j] + arr2[i] - arr2[j] - i + j;arr1[i]−arr1[j]+arr2[i]−arr2[j]+i−j;−arr1[i]+arr1[j]−arr2[i]+arr2[j]−i+j;−arr1[i]+arr1[j]+arr2[i]−arr2[j]+i−j;arr1[i]−arr1[j]−arr2[i]+arr2[j]+i−j;arr1[i]−arr1[j]+arr2[i]−arr2[j]−i+j;−arr1[i]+arr1[j]−arr2[i]+arr2[j]+i−j;arr1[i]−arr1[j]−arr2[i]+arr2[j]−i+j;−arr1[i]+arr1[j]+arr2[i]−arr2[j]−i+j;

把 j 拿走
arr1[i]+arr2[i]+i;−arr1[i]−arr2[i]−i;−arr1[i]+arr2[i]+i;arr1[i]−arr2[i]+i;arr1[i]+arr2[i]−i;−arr1[i]−arr2[i]+i;arr1[i]−arr2[i]−i;−arr1[i]+arr2[i]−i;arr1[i] + arr2[i] + i;\\ -arr1[i] - arr2[i] - i;\\ -arr1[i] + arr2[i] + i;\\ arr1[i] - arr2[i] + i;\\ arr1[i] + arr2[i] - i;\\ -arr1[i] - arr2[i] + i;\\ arr1[i] - arr2[i] - i;\\ -arr1[i] + arr2[i] - i;\\ arr1[i]+arr2[i]+i;−arr1[i]−arr2[i]−i;−arr1[i]+arr2[i]+i;arr1[i]−arr2[i]+i;arr1[i]+arr2[i]−i;−arr1[i]−arr2[i]+i;arr1[i]−arr2[i]−i;−arr1[i]+arr2[i]−i;
发现只有4种情况
arr1[i]+arr2[i]+iasA;−arr1[i]−arr2[i]−ias−A;−arr1[i]+arr2[i]+iasB;arr1[i]−arr2[i]+iasC;arr1[i]+arr2[i]−iasD;−arr1[i]−arr2[i]+ias−D;arr1[i]−arr2[i]−ias−B;−arr1[i]+arr2[i]−ias−C;arr1[i] + arr2[i] + i \quad as A;\\ -arr1[i] - arr2[i] - i \quad as -A;\\ -arr1[i] + arr2[i] + i \quad as B;\\ arr1[i] - arr2[i] + i \quad as C;\\ arr1[i] + arr2[i] - i \quad as D;\\ -arr1[i] - arr2[i] + i \quad as -D;\\ arr1[i] - arr2[i] - i \quad as -B;\\ -arr1[i] + arr2[i] - i \quad as -C; arr1[i]+arr2[i]+iasA;−arr1[i]−arr2[i]−ias−A;−arr1[i]+arr2[i]+iasB;arr1[i]−arr2[i]+iasC;arr1[i]+arr2[i]−iasD;−arr1[i]−arr2[i]+ias−D;arr1[i]−arr2[i]−ias−B;−arr1[i]+arr2[i]−ias−C;
只需要取出ABCD,求其最大最小值,做差

class Solution {public:int maxAbsValExpr(vector<int>& arr1, vector<int>& arr2) {int min1 = INT_MAX, min2 = INT_MAX, min3 = INT_MAX, min4 = INT_MAX;int max1 = INT_MIN, max2 = INT_MIN, max3 = INT_MIN, max4 = INT_MIN;for(int i = 0; i < arr1.size(); ++i){max1 = max(max1, arr1[i] + arr2[i] + i);max2 = max(max2,-arr1[i] + arr2[i] + i);max3 = max(max3, arr1[i] - arr2[i] + i);max4 = max(max4, arr1[i] + arr2[i] - i);min1 = min(min1, arr1[i] + arr2[i] + i);min2 = min(min2,-arr1[i] + arr2[i] + i);min3 = min(min3, arr1[i] - arr2[i] + i);min4 = min(min4, arr1[i] + arr2[i] - i);}return max(max(max1-min1, max2-min2),max(max3-min3, max4-min4));}
};

100 ms 23.2 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1131. 绝对值表达式的最大值(数学 绝对值展开)相关推荐

  1. [leetcode]1131. 绝对值表达式的最大值 --绝对值表达式枚举拆分的方法

    1.重要的数学推导: |a| = Max(a, -a) |a-b|+|c-d| = Max(a-b, b-a) + Max(c-d, d-c) // max(a-b, -(a-b)) + max(c- ...

  2. 绝对值表达式的最大值(Java)

    给出两个长度相等的整数数组,返回下面表达式的最大值: |arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j| 其中下标 i,j 满足 0 <= i ...

  3. [leetcode]1131. 绝对值表达式的最大值 ---曼哈顿距离,四角思维

    解题思路 参考这个帖子写的,下面的图片也截自这里 https://leetcode.com/problems/maximum-of-absolute-value-expression/discuss/ ...

  4. 【数学】B080_LC_绝对值表达式的最大值(表达式的符号分类)

    一.Problem Given two arrays of integers with equal lengths, return the maximum value of: |arr1[i] - a ...

  5. 作业三——求左部分中的最大值减去右部分最大值的绝对值,最大是多少...

    给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2].求这么多划分方案中,左部分中的最大值减去 ...

  6. c语言绝对值题目,初中数学绝对值练习题答案及解析

    原标题:初中数学绝对值练习题答案及解析 绝对值(温习知识点) 1.2.4绝对值 1.定义 在数轴上,表示数a的点与原点的距离叫做数a的绝对值,记作|a|.例如,图1.2-8中A,B两点分别表示10和- ...

  7. JS 中的Math方法向上取整、向下取整、保留整数、绝对值、取最大值、最小值等

    JS 中的Math方法向上取整.向下取整.保留整数.绝对值.取最大值.最小值等 1.只保留整数部分(丢弃小数部分) parseInt(5.1234);// 5 2.向下取整(<= 该数值的最大整 ...

  8. c语言绝对值题目,初中数学绝对值的练习题(整理)

    初中数学绝对值的练习题(整理) 导语:任何时候我也不会满足,越是读书,就越是深刻的感到不满足,越是感到自己的知识贫乏.下面是小编为大家整理的,数学练习题,希望对大家有所帮助,欢迎阅读,仅供参考,更多相 ...

  9. 绝对值用计算机怎么打,绝对值符号怎么打

    您提交的内容含有以下违规字符,请仔细检查! 相信不少使用几何画板的人都遇到过输入绝对值这个情况,很多人都不知道,几何画板中怎么输入绝对值.既然几何画板作为数学教学必备辅助工具,当然肯定是可以用在绝对值 ...

最新文章

  1. [转载]oracle索引的简单总结
  2. 基于SAAS的IT运维管理方案
  3. FFmpeg编译出错_img_convert 找不到
  4. Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors
  5. linux 7 定时任务设置,centos7 配置crontab定时任务
  6. 以太坊2.0客户端Prysm缺陷导致信标链节点共损失15ETH,即将发布更新
  7. 前端学习(一):HTML基本语法
  8. 回归中的相关系数以及R平方值和Python应用举例
  9. Latex自由设置虚线的作用区间及间距
  10. 使用腾讯OCR进行文字识别
  11. ubuntu文献翻译软件:兰译
  12. windows10系统设置选项里没有触摸板选项
  13. 江浙沪地区计算机考研高效排名,江浙沪地区,哪所大学的法硕容易考上?
  14. spring Boot Configuration Annotation Processor not fount in classpath
  15. Jscript函数的使用
  16. 跳棋游戏利用树构建合法路径出现循环的解决办法
  17. 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年11月份最新版)
  18. 使用Clover 3
  19. 贴吧引流吧龄有要求吗?贴吧引流需要注意什么?
  20. AVProVideo☀️四、视频播放案例

热门文章

  1. Storm集群的安装及简单使用
  2. 关于未捕获异常的处理(WPF)
  3. s5pv210——按键
  4. spring restTemplate使用方法
  5. 【分享】一个集成tracert和ping的网络监测工具
  6. JAVA 8 StreamAPI 和 lambda表达式 总结(一)--lambda表达式
  7. CI Weekly #11 | 微服务场景下的自动化测试与持续部署
  8. javascript常用内置对象总结(重要)
  9. 由c语言转向c++,我们需要做什么?
  10. check-lxdialog.sh: line 3: $'\r': command not found