当前位置:网站首页>leetcode 5724. 绝对差值和
leetcode 5724. 绝对差值和
2022-08-09 03:15:00 【田园诗人之园】
给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n 。
数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的 总和(下标从 0 开始)。
你可以选用 nums1 中的 任意一个 元素来替换 nums1 中的 至多 一个元素,以 最小化 绝对差值和。
在替换数组 nums1 中最多一个元素 之后 ,返回最小绝对差值和。因为答案可能很大,所以需要对 109 + 7 取余 后返回。
|x| 定义为:
如果 x >= 0 ,值为 x ,或者
如果 x <= 0 ,值为 -x
示例 1:
输入:nums1 = [1,7,5], nums2 = [2,3,5]
输出:3
解释:有两种可能的最优方案:
- 将第二个元素替换为第一个元素:[1,7,5] => [1,1,5] ,或者
- 将第二个元素替换为第三个元素:[1,7,5] => [1,5,5]
两种方案的绝对差值和都是 |1-2| + (|1-3| 或者 |5-3|) + |5-5| = 3
示例 2:
输入:nums1 = [2,4,6,8,10], nums2 = [2,4,6,8,10]
输出:0
解释:nums1 和 nums2 相等,所以不用替换元素。绝对差值和为 0
示例 3:
输入:nums1 = [1,10,4,4,2,7], nums2 = [9,3,5,1,7,4]
输出:20
解释:将第一个元素替换为第二个元素:[1,10,4,4,2,7] => [10,10,4,4,2,7]
绝对差值和为 |10-9| + |10-3| + |4-5| + |4-1| + |2-7| + |7-4| = 20
提示:
n == nums1.length
n == nums2.length
1 <= n <= 105
1 <= nums1[i], nums2[i] <= 105
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-absolute-sum-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
int minAbsoluteSumDiff(int* nums1, int nums1Size, int* nums2, int nums2Size){
long long mod = 10e9 + 7;
int arr[nums1Size];
int index = 0;
int max_value = 0;
int min_value = 10e5;
long long res = 0;
memset(arr, 0, sizeof(int) * nums1Size);
printf("nums1Size:%d nums2Size:%d\n", nums1Size, nums2Size);
for (int i = 0; i < nums1Size; i++) {
arr[i] = abs(nums1[i] - nums2[i]);
//printf("i: %d arr[i]:%d\n", i, arr[i]);
if (arr[i] > max_value) {
index = i;
max_value = arr[i];
}
}
for (int i = 0; i < nums1Size; i++) {
if (abs(nums1[i] - nums2[index]) < min_value) {
min_value = abs(nums1[i] - nums2[index]);
}
}
arr[index] = min_value;
printf("index:%d min_value:%d\n", index, min_value);
for (int i = 0; i < nums1Size; i++) {
res += arr[i];
}
return res%1000000007;
}
边栏推荐
猜你喜欢
随机推荐
jsx定义与规则
SQL注入(1)
JSON的使用
智能计数器控制板的功能及应用有哪些?
掌握财富密码,运维还要了解这些技术
那些关于DOM的常见Hook封装(一)
【meet host】
Mysql表打不开
全链路UI设计笔记
What are the functions and applications of the smart counter control board?
pytorch 自定义dataset
365 days challenge LeetCode1000 topic - Day 051 special binary sequence partition
多商户商城系统功能拆解23讲-平台端分销等级
leetcode-23. Merge K ascending linked lists
条件变量condition_variable实现线程同步
Redis的过期策略和淘汰策略
ros入门(安装)
23 Lectures on Disassembly of Multi-merchant Mall System Functions-Platform Distribution Level
三箭资本濒临破产?市场陷入1907年恐慌之中?加密监管不可避免
C专家编程 第9章 再论数组 9.6 C语言的多维数组