LeetCode 1818. 绝对差值和(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1818. 绝对差值和(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
前三題,拼手速。最后一題暴力超時。
1. 題目
給你兩個正整數數組 nums1 和 nums2 ,數組的長度都是 n 。
數組 nums1 和 nums2 的 絕對差值和 定義為所有 |nums1[i] - nums2[i]|(0 <= i < n)的 總和(下標從 0 開始)。
你可以選用 nums1 中的 任意一個 元素來替換 nums1 中的 至多 一個元素,以 最小化 絕對差值和。
在替換數組 nums1 中最多一個元素 之后 ,返回最小絕對差值和。
因為答案可能很大,所以需要對 10^9 + 7 取余 后返回。
|x| 定義為:
- 如果 x >= 0 ,值為 x ,或者
- 如果 x <= 0 ,值為 -x
https://leetcode-cn.com/contest/weekly-contest-235/problems/minimum-absolute-sum-difference/
2. 解題
- 對 nums1 排序,遍歷 nums2 中的數字 x
- 在 nums1 中二分查找 x 前后的數字,記錄最小差值,和 最大的和 的下降量
420 ms 101.7 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1818. 绝对差值和(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1897. 重新分配字
- 下一篇: LeetCode 1925. 统计平方和