摘要: title: 组合问题 📃 题目描述 题目链接:组合问题 🔔 解题思路 采用暴力解法,回溯法用递归来解决嵌套层数的问题,得到的子结果都是升的,即从小到大遍历就行,如代码:int i = startIndex, 因为135和531是一样的; 将结果保存再res中; 将子结果保存在path中; 1. 阅读全文
posted @ 2022-05-07 12:46 D-booker 阅读(70) 评论(0) 推荐(0) 编辑
摘要: title: 1351.统计有序矩阵中的负数 📃 题目描述 题目链接:统计矩阵中的负数 🔔 解题思路 每层遍历的做法为o(n*m),将每一层的搜索加快,采用二分查找,可以套用找边界问题,找<0的左边界 int countNegatives(vector<vector<int>>& grid) { 阅读全文
posted @ 2022-05-07 11:55 D-booker 阅读(58) 评论(0) 推荐(0) 编辑
摘要: title: 第一个错误版本 📃 题目描述 题目链接:278第一个错误版本 🔔 解题思路 找个第一个为true的版本,采用二分板子,搜索左边界,找出第一个为true的index int firstBadVersion(int n) { int left = 0, right = n; int m 阅读全文
posted @ 2022-05-07 11:54 D-booker 阅读(16) 评论(0) 推荐(0) 编辑
摘要: title: 寻找旋转排序数组中的最小值II 📃 题目描述 题目链接:寻找旋转排序数组中的最小值II 🔔 解题思路 和上题同理:数组特点有 nums[mid] < nums[right],最小值肯定在mid左边,nums[mid] > nums[right],最小值肯定在mid右边,但是 num 阅读全文
posted @ 2022-05-07 11:53 D-booker 阅读(20) 评论(0) 推荐(0) 编辑
摘要: title: 二分查找 📃 题目描述 题目链接:二分查找 🔔 解题思路 二分模板默写 int search(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; int mid; while (left < 阅读全文
posted @ 2022-05-07 11:48 D-booker 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 二分查找实际上就是采用了分治法的思想 以下模板都以升序数组为准 模板一: 标准的二分查找 场景:数组元素有序且不重复 有的话返回索引,没有返回-1 int binarySearch(vector<int>& arr, int target) { int left = 0, right = nums. 阅读全文
posted @ 2022-05-07 11:46 D-booker 阅读(142) 评论(0) 推荐(0) 编辑