摘要:
LeetCode 367. 有效的完全平方数 思路: 核心为最后一步判断当二分结束后值为及接近一个整数的浮点数(如2.9xxxx)此时加上极小数(1e-6)取整再平方,若与num相等则为完全平方数 class Solution { public: bool isPerfectSquare(int n 阅读全文
posted @ 2022-08-22 18:50
hjy94wo
阅读(21)
评论(0)
推荐(0)
摘要:
LeetCode 69. x 的平方根 思路: 浮点数二分修改版 因为返回的是整数所以二分分三类讨论 mid * mid == x 该情况mid为x的平方根 mid * mid > x 该情况mid大于x的平方根 mid * mid < x 该情况mid小于x的平方根(可能为答案也可能不是因为要求整 阅读全文
posted @ 2022-08-22 18:38
hjy94wo
阅读(20)
评论(0)
推荐(0)
摘要:
34. 在排序数组中查找元素的第一个和最后一个位置 思路: 与AcWing 789一致 class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { if (nums.size() == 0) re 阅读全文
posted @ 2022-08-22 18:21
hjy94wo
阅读(20)
评论(0)
推荐(0)
摘要:
LeetCode 704. 二分查找 思路: 直接套模板 class Solution { public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; while (l < r){ int m 阅读全文
posted @ 2022-08-22 17:16
hjy94wo
阅读(22)
评论(0)
推荐(0)
摘要:
LeetCode 35. 搜索插入位置 思路 直接利用二分模板 注意右指针开始为nums.size()而不是nums.size() - 1因为有可能在最后一位插入 class Solution { public: int searchInsert(vector<int>& nums, int tar 阅读全文
posted @ 2022-08-22 17:12
hjy94wo
阅读(22)
评论(0)
推荐(0)
摘要:
整数二分模板 l = mid这个模板mid需要+1 int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; // check()判断mid是否满足性质 else l = 阅读全文
posted @ 2022-08-22 15:08
hjy94wo
阅读(48)
评论(0)
推荐(0)
摘要:
###快速排序 步骤 确定分界点:q[l], q[(l+r)/2], q[r], 随机 调整区间 递归处理 void quick_sort(int q[], int l, int r) { if (l >= r) return; //递归结束条件 int i = l - 1, j = r + 1, 阅读全文
posted @ 2022-08-22 10:55
hjy94wo
阅读(36)
评论(0)
推荐(0)