LeetCode 1131. 绝对值表达式的最大值(数学 绝对值展开)
文章目录
- 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. 绝对值表达式的最大值(数学 绝对值展开)相关推荐
- [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- ...
- 绝对值表达式的最大值(Java)
给出两个长度相等的整数数组,返回下面表达式的最大值: |arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j| 其中下标 i,j 满足 0 <= i ...
- [leetcode]1131. 绝对值表达式的最大值 ---曼哈顿距离,四角思维
解题思路 参考这个帖子写的,下面的图片也截自这里 https://leetcode.com/problems/maximum-of-absolute-value-expression/discuss/ ...
- 【数学】B080_LC_绝对值表达式的最大值(表达式的符号分类)
一.Problem Given two arrays of integers with equal lengths, return the maximum value of: |arr1[i] - a ...
- 作业三——求左部分中的最大值减去右部分最大值的绝对值,最大是多少...
给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2].求这么多划分方案中,左部分中的最大值减去 ...
- c语言绝对值题目,初中数学绝对值练习题答案及解析
原标题:初中数学绝对值练习题答案及解析 绝对值(温习知识点) 1.2.4绝对值 1.定义 在数轴上,表示数a的点与原点的距离叫做数a的绝对值,记作|a|.例如,图1.2-8中A,B两点分别表示10和- ...
- JS 中的Math方法向上取整、向下取整、保留整数、绝对值、取最大值、最小值等
JS 中的Math方法向上取整.向下取整.保留整数.绝对值.取最大值.最小值等 1.只保留整数部分(丢弃小数部分) parseInt(5.1234);// 5 2.向下取整(<= 该数值的最大整 ...
- c语言绝对值题目,初中数学绝对值的练习题(整理)
初中数学绝对值的练习题(整理) 导语:任何时候我也不会满足,越是读书,就越是深刻的感到不满足,越是感到自己的知识贫乏.下面是小编为大家整理的,数学练习题,希望对大家有所帮助,欢迎阅读,仅供参考,更多相 ...
- 绝对值用计算机怎么打,绝对值符号怎么打
您提交的内容含有以下违规字符,请仔细检查! 相信不少使用几何画板的人都遇到过输入绝对值这个情况,很多人都不知道,几何画板中怎么输入绝对值.既然几何画板作为数学教学必备辅助工具,当然肯定是可以用在绝对值 ...
最新文章
- [转载]oracle索引的简单总结
- 基于SAAS的IT运维管理方案
- FFmpeg编译出错_img_convert 找不到
- Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors
- linux 7 定时任务设置,centos7 配置crontab定时任务
- 以太坊2.0客户端Prysm缺陷导致信标链节点共损失15ETH,即将发布更新
- 前端学习(一):HTML基本语法
- 回归中的相关系数以及R平方值和Python应用举例
- Latex自由设置虚线的作用区间及间距
- 使用腾讯OCR进行文字识别
- ubuntu文献翻译软件:兰译
- windows10系统设置选项里没有触摸板选项
- 江浙沪地区计算机考研高效排名,江浙沪地区,哪所大学的法硕容易考上?
- spring Boot Configuration Annotation Processor not fount in classpath
- Jscript函数的使用
- 跳棋游戏利用树构建合法路径出现循环的解决办法
- 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年11月份最新版)
- 使用Clover 3
- 贴吧引流吧龄有要求吗?贴吧引流需要注意什么?
- AVProVideo☀️四、视频播放案例
热门文章
- Storm集群的安装及简单使用
- 关于未捕获异常的处理(WPF)
- s5pv210——按键
- spring restTemplate使用方法
- 【分享】一个集成tracert和ping的网络监测工具
- JAVA 8 StreamAPI 和 lambda表达式 总结(一)--lambda表达式
- CI Weekly #11 | 微服务场景下的自动化测试与持续部署
- javascript常用内置对象总结(重要)
- 由c语言转向c++,我们需要做什么?
- check-lxdialog.sh: line 3: $'\r': command not found