【Leetcode Daily】3453分割正方形I
发表于|更新于|力扣日常 | LeetcodeDaily
|总字数:256|阅读时长:1分钟|浏览量:
题目浅析
想查看原题可以点击题目链接。
简单地说,就是给一个二维数组,代表一个二维坐标系上有很多矩阵,现在可以画一个横线,求这个横线能恰好平分上下的正方形面积的高度(y 值)
思路分享
- 没想到是二分答案,而且由于题目要求精度为 10^5 所以可以对于每个面积的计算乘 10**5 化为整数,然后从下往上,二分去逼近这个答案。
代码解答(强烈建议自行解答后再看)
- 参考题解
1 | class Solution: |
文章作者: 陆爻齐-LuYaoQi
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuYaoQi's Blogs!
相关推荐

2025-07-27
【Leetcode Daily】1011在D天内送达包裹的能力
题目浅析 想查看原题可以点击题目链接。 思路分享 二分答案的基本思路可看【Leetcode Daily】1283使结果不超过阈值的最小除数。 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415161718192021222324252627282930class Solution: def shipWithinDays(self, weights: List[int], days: int) -> int: # 先要定好二分答案的左右区间起始,注意这是开区间 left, right = max(weights)-1, 500*len(weights)+1 def check(weights: List[int], ship_load: int, days: int) -> bool: # 此处把负载过小的情况快速地排除,加速 if sum(weights) > ship_load*days: ...

2025-06-05
【Leetcode Daily】1170比较字符串最小字母出现频次
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给两个字符串数组,看一个数组中各个字符串的最小字母频次,在另一个数组所有字符串的最小字母频次中,排第几。 思路分享 分别对两个数组做转换成最小字母频次的整型数组,然后让一个数组的各值在另一个数组做二分查找找到自己的位置即可。 二分的基本思想在 【Leetcode Daily】34在排序数组中查找元素的第一个和最后一个位置。 重点注意一个小问题,字典序的顺序与数字不同,字典序中 2 比 10 大,因为 2 大于 10 的第一位 1,所以 2 更大。正因如此,不能在 string 的数组上直接排序。 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415161718192021222324252627282930class Solution {public: vector<int> numSmallerByFrequency(vector<string>& queries, vector<string>&...

2025-07-24
【Leetcode Daily】1283使结果不超过阈值的最小除数
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个数组和一个阈值,现在找到一个尽可能大的数值 n,使得数组的每个值除 n 后之和小于阈值。 思路分享 二分的基本思路可看【Leetcode Daily】34在排序数组中查找元素的第一个和最后一个位置。 本题属于二分答案中的求最小系列,二分的思路是:既然求最小,那就是区间右侧满足条件,但左侧不满足,然后一点点逼近。 https://leetcode.cn/problems/find-the-smallest-divisor-given-a-threshold/solutions/2989469/mo-ban-er-fen-da-an-qiu-zui-xiao-pythonj-ukwe/ 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112class Solution: def smallestDivisor(self, nums: List[int], threshold: int) -> int: left, right = 0, max(nums) ...

2025-06-03
【Leetcode Daily】1385两个数组间的距离值
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给两个数组,求一个数组在另一数组不满足与其中一个值的一定区间内的元素数量。 思路分享 如何实现二分可看【Leetcode Daily】34在排序数组中查找元素的第一个和最后一个位置。 重点在于深刻理解二分的含义,比如上面样例的二分返回的下标的含义,其实是第一个大于目标值的下标,在这个基础上,如何该值同时已经超过目标值的区间,就说明满足题意。 https://leetcode.cn/problems/find-the-distance-value-between-two-arrays/solutions/3010185/liang-chong-fang-fa-er-fen-cha-zhao-san-15u9b/ 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415161718192021222324252627class Solution {public: int lowerBound(vector<int> &nums, int...

2025-12-23
【Leetcode Daily】2054两个最好的不重叠活动
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一系列活动的开始时间、结束时间和价值,其中最多能参加两个时间不重合的活动,求可获得价值最大值。 思路分享 本来是想通过 dp 解决,毕竟和 01 背包有点像,但没考虑清楚怎么方便地判断当前的活动是否能合法的插入,只好放弃。 灵神提供了针对本题只选取两活动的方法,只要贪心地记录较大价值的活动,然后在假设有当前活动的同时,找当前活动的开始时间前有无结束时间合适的活动取值就行。由于只有新活动的价值更大才会放进栈,所以能确保找到的最合适的那个价值一定最大(二分查找辅助查找) https://leetcode.cn/problems/two-best-non-overlapping-events/solutions/1075386/yong-you-xian-dui-lie-wei-hu-ling-yi-ge-8ld3x/?envType=daily-question&envId=2025-12-23 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112class Solution:...

2025-07-23
【Leetcode Daily】2070每一个查询的最大美丽值
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个二位整数数组来代表一个商品的价格和美丽值,然后根据一系列价格,查询不高于该数值能得到的最大美丽值。 思路分享 二分的基本思路可看【Leetcode Daily】34在排序数组中查找元素的第一个和最后一个位置。 本题有好几个思路,下面的参考题解选取采用预处理 item 和 二分 的方法。 https://leetcode.cn/problems/most-beautiful-item-for-each-query/solutions/1100468/jiang-xun-wen-chi-xian-pai-xu-by-endless-o5j0/ 重点是预处理,将商品们按价格升序排列后,再只保留相同价格中的最大美丽值,这样就方便了后续的二分,同时也减少了复杂性。 至于二分,需要牢记的是二分取左右的含义,本题二分的是目标值加一的取右,所以如果这个值取到了 0,说明目标不存在,也就是不符合条件了。 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415class...
公告
希望你我都能得偿所愿
PS:相对流水账的文章只能在归档找得到
系列文章
