题目:

给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n 。

数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的 总和(下标从 0 开始)。

你可以选用 nums1 中的 任意一个 元素来替换 nums1 中的 至多 一个元素,以 最小化 绝对差值和。

在替换数组 nums1 中最多一个元素 之后 ,返回最小绝对差值和。因为答案可能很大,所以需要对 109 + 7 取余 后返回。

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

题解:

class Solution:

def minAbsoluteSumDiff(self, nums1: List[int], nums2: List[int]) -> int:

n_len = len(nums1)

mod = 10**9 + 7

if n_len == 1:

return abs(nums1[0] - nums2[0])

right_dict = {}

max_diff = 0

diff_sum = 0

n1_sort = nums1.copy()

n1_sort.sort()

for i in range(0, n_len):

left_val = nums1[i]

right_val = nums2[i]

diff = abs(left_val - right_val)

diff_sum += diff

if diff > 0:

if right_val not in right_dict:

right_dict[right_val] = diff

# 查找最接近的元素

start_index = 0

end_index = n_len - 1

v_diff = diff

# 二分法查找

while True:

if (start_index + 1) == end_index:

mid_diff = min(abs(right_val - n1_sort[start_index]), abs(right_val - n1_sort[end_index]))

if mid_diff < v_diff:

v_diff = mid_diff

break

mid_index = (start_index + end_index) // 2

# 减去中间值

mid_diff = abs(right_val - n1_sort[mid_index])

if mid_diff < v_diff:

v_diff = mid_diff

# diff 为0时,终止循环

if v_diff == 0:

break

# 移动开始或结束位置

if n1_sort[mid_index] > right_val:

end_index = mid_index

elif n1_sort[mid_index] < right_val:

start_index = mid_index

if v_diff < diff:

right_dict[right_val] = v_diff

# 最大减少的值

v_max_diff = abs(diff - right_dict[right_val])

if v_max_diff > max_diff:

max_diff = v_max_diff

diff_sum -= max_diff

return diff_sum % mod

算法:5、绝对差值和相关推荐

  1. PS图层混合算法之六(差值,溶解, 排除)

    差值模式: 查看每个通道中的颜色信息,比较底色和绘图色,用较亮的像素点的像素值减去较暗的像素点的像素值.与白色混合将使底色反相:与黑色混合则不产生变化. 排除模式可生成和差值模式相似的效果,但比差值模 ...

  2. ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别

    ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算: ...

  3. ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别

    ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数 ...

  4. java 数组中差值最大数对,[算法题] 求数组有序后相邻元素之间的最大差值

    1. 题目要求 给定无序数组(此数组是long类型的数组,但以下示例只列一些小一点的数),例如: [3, 1, 12, 9, 3, 7, 1, 4, 7, 8, 10] 求数组有序后相邻元素之间的最大 ...

  5. 相似图像搜索的哈希算法思想及实现(差值哈希算法和均值哈希算法)

    图像相似度比较哈希算法: 什么是哈希(Hash)? • 散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小 的数字"指纹"的方法.散 ...

  6. python表示差值_Python算法之差值查找-Testfan打卡学测开0116

    原标题:Python算法之差值查找-Testfan打卡学测开0116 本期技术分享讲师:Arthur老师 题目内容:什么是差值查找? 解析: 之前我们介绍过"二分查找"发.考虑一个 ...

  7. PS算法:正片疊底/溶解/柔光/差值/滤色

    Prolog:對比度算法128 + (Value - 128) * nPercent / 100 由RGB颜色分量 Value 和对比度调整数值计算新的颜色分量值 正片叠底(multiply):将两个 ...

  8. [算法][面试题]疯狂队列-排列使得序列两两间“差值的绝对值“之和最大

    题目 给定一个数列A,数列中相邻两项的差值的绝对值定义为"疯狂值".任意排序这个数列,使得整个数列的"疯狂值"最大,输出这个最大值. 样例 输入 5 10 25 ...

  9. ibm db2获取目标时间与当前时间的差值_高帧频视觉实时目标检测系统

    基于机器视觉的智能目标检测系统应用非常广泛,尤其在航天军工等领域中,经常涉及高速目标的实时检测和控制,对目标检测的智能性和实时性提出了更严格的要求.在这种应用中,视觉系统相对雷达.声纳具有信息量大.抗 ...

  10. 影像组学视频学习笔记(33)-使用SimpleITK实现医学影像差值、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获转载授权 RadiomicsWorld.com "影像组学世界" ...

最新文章

  1. 算法-----------接雨水(Java版本)
  2. springboot 整合mybatis_SpringBoot整合MyBatis框架快速入门
  3. 倩女手游服务器维护,倩女手游7月28日服务器在线维护公告
  4. eclipse java import_java – Eclipse:将源代码的import文件夹导入...
  5. PHP - 5.4 Array dereferencing 数组值
  6. Android开发过程为C文件或者C++文件配置打印Logcat信息
  7. C#开发Android应用实战
  8. html图片上传框架,HTML+JS图片上传源码
  9. 大学生就业观念的调查与分析
  10. 【Leetcode Medium】1318. Minimum Flips to Make a OR b Equal to c
  11. NetBIOS name
  12. 圣思园张龙-Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
  13. 解决pip无法更新问题
  14. 微擎人人商城 后台开启WAP访问后 微信浏览器 跳过授权 手机号密码登录
  15. 高级建模方法(Gurobi):线性化、分段线性函数、逻辑变量/约束
  16. Go语言笔记 | 01-为什么要学Go语言
  17. 智能小车系列文章之小车简介
  18. JS String.toDate
  19. 什么是NP问题,NP-complete和NP-hard问题.
  20. 错误1:Archive for required library: XXXXXXXXcannot be read or is not a valid ZIP file

热门文章

  1. Exploring Sparsity in Image Super-Resolution for Efficient Inference
  2. 从 IPv4 向 IPv6 的迁移
  3. 简信CRM:手机CRM软件的应用好处有哪些?
  4. mysql 读写分离配置
  5. html a4页面样式_4个使用将HTML转换为PDF的方法介绍-js教程
  6. 计算机分屏功能吗,电脑分屏显示
  7. 网络七层协议的通俗理解
  8. Spring Cloud 基础教程 - 程序猿DD
  9. 图形2.5 Bump Map的改进(凹凸映射)
  10. Altium Designer 打印PCB板元件位置图