随笔分类 - LeetCode
摘要:设有n个位置,k个小球 由于小球完全相同,需要使用隔板法。 n个位置对应n-1个隔板,再加上k个小球,共n+k-1个位置,来放置小球和隔板 答案为C(n+k-1, k) 例题: 2338. 统计理想数组的数目 https://leetcode.cn/problems/count-the-number
阅读全文
摘要:并查集初始化为p[i]=i 每次合并时,向右合并 区间大小为sz[find(i)]-1 例题: 2334. 元素值大于变化阈值的子数组 https://leetcode.cn/problems/subarray-with-elements-greater-than-varying-threshold
阅读全文
摘要:在进行普通的BFS时,会将新的节点加入队尾。 但是由于01BFS的路径长度可能为0,故使用双端队列记录节点。如果路径为0,则加入队头,否则加入队尾。 例题:LCP 56. 信物传送 leetcode 2290. 到达角落需要移除障碍物的最小数目 class Solution { public: in
阅读全文
摘要:基数排序的思想是,对于一个给定的基数,每次排序构建基数数量的桶,并将数分配到桶里。 可以用count数组对桶中的数量计数,并转化为前缀数组记录桶中数字的位置。 LeetCode 164. 最大间距题解 class Solution { public: int maximumGap(vector<in
阅读全文
摘要:本质上是使用二分查找 注意:在考虑二分的边界时,可以不用数组的下标边界进行替代,而是直接使用极大的数进行替代 1 class Solution { 2 public: 3 double findMedianSortedArrays(vector<int>& nums1, vector<int>& n
阅读全文
摘要:简单的数位模拟题len位数共有 len*9*10^(len-1)个(10^(len-1)~10^n-1)可以对n进行试减,使范围内的数字全为len位。同时对于n对应的数字x有(x-10^(len-1)+1)*len>=n可以解得xx>=[n/len]-1+10^(len-1)利用n-=(x-10^(
阅读全文
摘要:关于信息熵,n个状态可携带log_2(n)的信息量n次实验,每次m个信息,共可判断(n+1)^m种情况
阅读全文
摘要:二维转一维 m*n数据范围 num->{num%n,num/n};用unordered_map记录特殊的映射,非特殊不记录,节省空间。
阅读全文
摘要:swap()函数定义在std中,可用于交换容器的元素。rand()返回0~INT_MAX的随机数,可以用取余的方法求一定范围的随机数。random_shuffle(begin(s), end(s));也具有打乱的功能。advance(it,n);可令迭代器前进(n为负表示后退)n步distance(
阅读全文
摘要:1、通过一个回文数计算下一个回文数: long long NextMirror(long long num) { string s=to_string(num); int n=s.size(); for(int i=(n-1)/2;i>=0;i--) { if(s[i]!='9') { char t
阅读全文
摘要:树和哈希表结合 不必遍历即可取得树的节点(仅用一个哈希表表示二叉树的所有边,不用建立树结构)
阅读全文
摘要:摩尔投票法可以解决数组元素数量时间复杂度为 O(n)、空间复杂度为 O(1)的统计问题。
阅读全文
摘要:与494求sum和neg的方法类似注意应用题和dp的数学转化(0-1背包问题)accumulate函数可对vector求和(numeric头文件)accumulate(nums.begin(),nums.end(),init,func)
阅读全文
摘要:可以利用同样的dp方法 注意题目的转化(加减转化为加法,需要考虑正负号时 只需考虑一边 sum-neg)
阅读全文
摘要:动态规划相比递归的优势是 动态规划可以在每一步保留最优情况 而递归需要计算全部情况,时间复杂度较高(指数) 背包问题的简化仅存储当前的dpmap 写好状态转移关系判断更新顺序dpmap的发展为背包的容量(几个容量就几维)
阅读全文
摘要:mt19937 在头文件<random>中,c++中的伪随机数生成器类型(与rand类似) 使用方法mt19937 gen(seed);//构造gen();生成随机数 uniform_int_distribution在头文件<random>中,均匀分布,是一个随机数分布类,参数为生成随机数的类型(例
阅读全文
摘要:vector的assign()将区间[first,last)的元素赋值到当前的vector容器中,此方法会清除掉容器的旧内容
阅读全文