摘要:
![](https://img2022.cnblogs.com/blog/2092994/202203/2092994-20220326164931234-170788541.png) 阅读全文
摘要:
回溯 1. 组合问题 组合问题 每次for都是从startIndex开始 每个元素 用一次和用多次体现在 backtrack(i+1)用一次还是backtrack(i)用多次上 组合问题不需要used数组,去重也不需要used数组那个判断 77. n元素下的k元素组合 labuladong 题解思路 阅读全文
摘要:
二分查找算法 一、二分查找的框架 int binarySearch(int[] nums, int target) { int left = 0, right = ...; while(...) { int mid = (right + left) / 2; if (nums[mid] == tar 阅读全文
摘要:
30. 串联所有单词的子串 因为单词长度固定的,我们可以计算出截取字符串的单词个数是否和 words 里相等,所以我们可以借用哈希表。 一个是哈希表是 words,一个哈希表是截取的字符串,比较两个哈希是否相等!因为遍历和比较都是线性的,所以时间复杂度:O(n^2)O(n2) class Solut 阅读全文
摘要:
204. 计数质数 使用厄拉多塞筛法进行 1 到 64 的质数查找的过程如下: 声明一个长度为最大限制数的布尔数组。用布尔值来区别筛选出的数和质数。 代码如下: class Solution { public: // //超时 // int countPrimes(int n) { // if(n 阅读全文
摘要:
64. 最小路径和 class Solution { public: // vector<int> allAns; // int minPathSum(vector<vector<int>>& grid) { // int ans = 0; // int m = grid.size(); // in 阅读全文
摘要:
K 个一组翻转链表 class Solution { public: // 翻转一个子链表,并且返回新的头与尾 pair<ListNode*, ListNode*> myReverse(ListNode* head, ListNode* tail) { ListNode* prev = tail-> 阅读全文