二分查找
文章平均质量分 57
王马软
因为原地不动,便永远地下沉
展开
-
PAT.1044 Shopping in Mars - 前缀和+二分查找
PAT.1044 Shopping in Mars - 前缀和+二分查找题目链接这道题让我们在给定的数列找找到和为某个值的子序列,并按左界升序输出,如果不存在这样的子序列,就按左界升序输出和大于且最接近给定值的子序列。首先想到可以用前缀和来预处理数据,然后枚举左右界检查和是否符合条件。然后呢?然后发现这样会超时,仔细一看题干,限时300ms。没办法,既然前缀和本身是递增的(给定数列所有数为正数),所以可以枚举左界然后对右界进行二分查找。题解#include<bits/stdc++.h&原创 2022-03-25 14:12:09 · 219 阅读 · 0 评论 -
codeforces日常训练 C. Cutting Out - 二分搜索答案
codeforces日常训练 C. Cutting Out - 二分搜索答案题干You are given an array s consisting of n integers.You have to find any array t of length k such that you can cut out maximum number of copies of array t from array s.Cutting out the copy of t means that for each原创 2021-04-30 23:04:56 · 306 阅读 · 1 评论 -
leetcode 633.平方数之和
leetcode 633.平方数之和题干给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false示例 3:输入:c = 4输出:true示例 4:输入:c = 2输出:true示例 5:输入:c = 1输出:true提示:0 <= c <= 231 - 1知识点&am原创 2021-04-28 13:34:14 · 264 阅读 · 0 评论 -
leetcode 1011.在D天内送达包裹的能力 - 二分
leetcode 1011.在D天内送达包裹的能力 - 二分题干传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 就能够在 5 天内送达所有包裹,原创 2021-04-26 20:37:21 · 103 阅读 · 0 评论 -
leetcode 363.矩形区域不超过K的最大数之和 - 枚举+前缀和
leetcode 363.矩形区域不超过K的最大数之和 - 枚举+前缀和题干给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。题目数据保证总会存在一个数值和不超过 k 的矩形区域。示例 1:输入:matrix = [[1,0,1],[0,-2,3]], k = 2输出:2解释:蓝色边框圈出来的矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。示例原创 2021-04-22 18:48:14 · 91 阅读 · 0 评论 -
leetcode 154. 寻找旋转排序数组中的最小值 II
leetcode 154. 寻找旋转排序数组中的最小值 II题干已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …原创 2021-04-09 18:49:32 · 74 阅读 · 0 评论 -
leetcode 153.寻找旋转排序数组中的最小值
leetcode 153.寻找旋转排序数组中的最小值题干已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[原创 2021-04-08 20:13:21 · 135 阅读 · 0 评论 -
leetcode 81.搜索旋转排序数组II
leetcode 81.搜索旋转排序数组II题干已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为原创 2021-04-07 18:04:24 · 75 阅读 · 0 评论