双指针&二分
双指针&二分
SSkinH
这个作者很懒,什么都没留下…
展开
-
荷兰国旗问题
双指针分别记录02边界。原创 2024-07-28 16:35:04 · 137 阅读 · 0 评论 -
LC 4寻找两个正序数组的中位数
找第mid小的数,先判断两个数组mid/2位置的数,小的那个数组之前的i个数都可以排除掉,然后再继续找第(mid-i)小的数,重复。如果一个数组被排除完了,那就直接找剩下数组的第mid个数。如果mid = 1,取未排除中小的那个数。请你找出并返回这两个正序数组的。的正序(从小到大)数组。原创 2024-07-21 15:12:47 · 264 阅读 · 0 评论 -
LC410分割数组的最大值
推导:只考虑最后一次划分的位置,假设在k处划分,所求值是dp[k][j-1]和subsum[k+1:i]间的最大值,对于每一个k都需要计算,求得最小的结果。dp[i][j]表示将[0:i]字符串分割成[j]份的 所求值,最终求的是dp[size][m]求二分值所需的最小份数,用贪心思想,只要没超过目标值就计入。给定一个数组,要分割成m份,使得最大的(份和) 是最小的。目标值的区间是 max(最大值,平均分)到总和。用二分的方法求得能够满足份数的最小目标值。(TP提前批2面遇到的,没做出来。原创 2024-06-28 18:13:43 · 307 阅读 · 0 评论 -
LC2981/2 找出出现至少三次的最长特殊字符串
问题等价于:对每个字符进行计算,求得至少出现三次的单字符串的最大长度。解题思路:对于每个字符,首先遍历,收集连续出现的字符的长度集合。原创 2024-05-30 19:44:19 · 163 阅读 · 0 评论 -
LC2332坐上公交车的最晚时间
题目:给公交车发车时间表buses,以及乘客到达站点时间passengers。buses不同时,乘客也不同时。以及bus容量capacity。求你的最晚上车时间(不能和乘客同时)。尽量做最晚那班车,不用排队就最后上车。要排队就找到最晚上车的人,在他前面插队。原创 2024-04-04 22:12:51 · 262 阅读 · 1 评论 -
LC849到最近人的最大距离
题目:给一个数组,1表示有人,0没人。求当前要坐下一个人,里附近人的最大距离。1.只有右边有人:只需要记录最左边的人的位置,他应该坐在最左边。3.两边都有人:记录左右两边人的位置,坐中间(d/2向下取整)。思路:有三种情况:只有右边有人,只有左边有人,左右都有人。2.只有左边有人:需要记录最右边的人的位置,他坐在最右边。一次遍历得到结果,max可以用{}比较多个元素。原创 2024-04-04 13:44:32 · 142 阅读 · 1 评论