![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
棒子胡豆
这个作者很懒,什么都没留下…
展开
-
LeetCode第 85 场双周赛总结
LeetCode第85场双周赛总结原创 2022-08-23 20:26:16 · 260 阅读 · 1 评论 -
Leetcode第306场周赛(附数位DP总结)
LeetCode第306周赛,附数位DP学习总结原创 2022-08-18 20:33:00 · 458 阅读 · 0 评论 -
(Leetcode)354. 俄罗斯套娃信封问题(二维LIS)
LIS问题。首先对根据w对二维数组进行排序,然后求h的LIS,在这里排序有值得注意的地方,题目要求w1和h1必须严格大于w0和h0才能将其套住。所以如果说w1<w0,显然物品1在物品0的前边,如果w1=w0,那么我们考虑h,如果h1>h0的话,让h1在前边。举个例子:[w0,h0],[w1,h1]。假设W0=W1,如果h0<h1的话,那么LIS=2,这显然是错误的,所以我们让物品1在前边,LIS=1;code:class Solution {public: int d原创 2021-03-04 16:09:17 · 173 阅读 · 1 评论 -
Leetcode(448) 找到所有数组中消失的数字
方法一:用一个数组记录一下每个数字是否出现过。(略)方法二:修改数组,首先看一下数据范围,数组中的数字是介于(1,n)之间的,当某个数字出现时,我们把它看成数组的下标,并对当前位置处的数字+n(n表示的是数组长度)。有一点是值得注意的,就是前边的数字可能会对后边的产生影响。所以取数的时候,对n执行一次取余操作即可。code:class Solution {public: vector<int> findDisappearedNumbers(vector<int>&am原创 2021-02-13 11:11:15 · 64 阅读 · 0 评论 -
Leetcode 119. 杨辉三角 II
杨辉三角的第k行可以根据组合数进行推到,比如第i行的第j个就是C(i,j)=n!m!(n−m)!\frac{n!}{m!(n-m)!}m!(n−m)!n! = C(i,j-1) n−m+1m\frac{n-m+1}{m}mn−m+1所以可以通过递推公式线性求组合数。code:class Solution {public: vector<int> getRow(int rowIndex) { vector<int> row(rowIndex + 1)原创 2021-02-12 21:02:08 · 137 阅读 · 0 评论 -
Leetcode 992. K 个不同整数的子数组
可以将问题简化为求一次不同元素个数小于等于k和求一次不同元素个数小于等于k-1的子数组的个数,然后再做差。求不同元素个数小于等于k的子数组的个数可以用滑动窗口来实现。右端窗口每移动一次对答案的贡献为right-left(当前区间大小)class Solution {public: map<int ,int >mp; int f(vector<int >&arr,int k){ mp.clear(); int n=arr.原创 2021-02-09 21:42:42 · 82 阅读 · 1 评论 -
最长湍流子数组(Leetcode 978)
两种方法:1、滑动窗口维护一个左端为left,右端为right的滑动窗口,滑动窗口内部维护的是[湍流子数组],如果说arr[right-1]>arr[right]<arr[right+1]或者说arr[right-1]>arr[right]<arr[right+1],移动right,否则的话,窗口清0,即left = rightclass Solution {public: int maxTurbulenceSize(vector<int>& ar原创 2021-02-08 20:39:08 · 103 阅读 · 0 评论 -
Leetcode 778. 水位上升的泳池中游泳
这种题目有好几种写法1、裸BFS,有点像SPFAclass Solution {public: int swimInWater(vector<vector<int>>& heights) { int n = heights.size(), m = heights[0].size(); vector<vector<int>> f(n, vector<int>(m, INT_MAX));原创 2021-01-30 20:28:00 · 113 阅读 · 1 评论 -
力扣第223场周赛
力扣第223场周赛1. 解码异或后的数组简单题,题解:a ^ b ^ b= 0,用结果和原数组在异或一下就可以了。class Solution {public: vector<int> decode(vector<int>& encoded, int first) { vector <int >ans; ans.push_back(first); int n = encoded.size();原创 2021-01-19 21:14:12 · 153 阅读 · 0 评论