二分查找
#OpenXML
0
#C#
0
##git
1
#分布式
1
#向量数据库
1
#React
1
#架构设计
2
#Command
1
#工具分享
5
#SQLite
1
#数据库锁
1
#Rust
7
#生产力
0
#区块链
1
#钱包
1
#数码
1
#MacOS
1
#基础
1
#Web3
0
#油猴脚本
1
#前端
2
#nft
1
#加密货币
0
#VIM
2
#协程
1
#前缀和
1
#滑动窗口
1
#数组
2
#贪心
0
##排序
1
#双指针
2
#代理模式
1
#数据库
1
#MySQL
2
#Flask
1
#MySQL进阶
2
#设计模式
1
#Python技巧
4
#刘禹锡
1
#Python
4
#情感
1
#矩阵
2
#二分查找
4
#剑指offer
1
#动态规划
3
#BFS
1
#二叉查找
0
#多源BFS
1
#赞美
1
#李白
1
#花
2
#元稹
1
#诗词
3
#Docker
4
#秋
1
#唐朝
3
#Airflow
5
#ETL
4
#文字加密
1
#JS逆向
5
#gRPC接口
2
#Canvas反爬
1
#AST
2
#JS
2
#字体加密
1
#瑞数
3
#爬虫
8
1818. 绝对值差和
给定两个正整数数组 nums1 和 nums2,长度均为 n。绝对差值和定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的总和。可以选用 nums1 中的任意一个元素来替换 nums1 中的至多一个元素,以最小化绝对差值和。需要处理边界条件以确保正确替换。使用二分查找找到最适合用于替换当前元素的元素,使绝对差值和最小。最终得到替换后的最小绝对差值和。
658. 找到 K 个最接近的元素
给定一个排序好的数组 arr,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须按升序排好。根据题解,可以使用滑动窗口的方法,从数组两端开始移除元素,直到剩下 k 个最接近 x 的数。代码实现如下:
```python
class Solution:
def findClosestElements(self, arr: List[int], k: int, x: int) -> List[int]:
n = len(arr)
left, right = 0, n - 1
remove = n - k
for _ in range(remove):
if abs(arr[left] - x) > abs(arr[right] - x):
left += 1
else:
right -= 1
return arr[left: right + 1]
```
通过这种方法,可以高效地找到最接近 x 的 k 个数。
【LC】875. 爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。