搜索
Noric!
这个作者很懒,什么都没留下…
展开
-
LeetCode搜索旋转排序数组(二分)
将有序数组切开[A、B] 变成 [B、A](A、B内部有序),仍然可以用二分来搜索,只是判断条件变复杂了一点。mid的位置有两种可能:在切线的左边\右边。根据mid与l值与target的关系,选取左右分区。二分模板:mid下取整,l = mid+1;mid/2.0向上取整,r = mid-1。注意:else的部分包含等于的情况,若单独判断时,等号的情况要考虑进去。附上代码:class Solution {public: int search(vector<int>&.原创 2021-11-05 20:37:47 · 84 阅读 · 0 评论 -
Leetcode 34&69 基础二分查找
代码:class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> out(2, -1); if(nums.empty() || nums[0] > target || nums.back() < target) return out; int l =.原创 2021-10-24 19:56:47 · 67 阅读 · 0 评论 -
Leetcode 5825 暴力全排列
一开始看到这个题的时候,我还在想有没有什么简单做法,像动态规划或者堆排序什么的避免超时,结果一直没什么思路。直到我看懂了提示:1≤m,n≤81 \leq m, n \leq 81≤m,n≤8, 即 m,nm, nm,n 都在 [1,8][1, 8][1,8] 之间,并不是只有 nnn 小于8, 那这样就可以直接用暴力做了。做法类似 leetcode 里面的全排列的那个题,利用 dfs 递归找到所有可能的排列,并计算每一种方案的得分记录最大值。可以提前建一张 m×mm\times mm×m 的表记录每个..原创 2021-07-25 19:34:11 · 122 阅读 · 0 评论