日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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. 绝对值表达式的最大值(数学 绝对值展开)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。