![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题笔记
张李浩
这个作者很懒,什么都没留下…
展开
-
Leetcode 096不同的二叉树搜索树、Leetcode 095不同的二叉搜索树II
地址https://leetcode-cn.com/problems/unique-binary-search-trees-ii/描述思想代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nul原创 2021-12-28 11:02:15 · 358 阅读 · 0 评论 -
DP Leetcode 091解码方法
地址https://leetcode-cn.com/problems/decode-ways/描述思想代码class Solution {public: int numDecodings(string s) { int n=s.length(); vector<int> f(n+1); f[0]=1; s=' '+s; for(int i=1;i<=n;i++){原创 2021-12-10 20:02:44 · 3505 阅读 · 0 评论 -
DP 不知道啥类型,反正不是完全背包类型 以及一般溢出处理 Leetcode 377 组合总数IV
地址https://leetcode-cn.com/problems/combination-sum-iv/描述思想本题不能使用完全背包思想解决,因为本题顺序不同的序列被视为不同的组合而完全背包不考虑顺序。代码class Solution {public: int combinationSum4(vector<int>& nums, int target) { // 2147483647 + 1 cannot be represented in原创 2021-12-10 19:38:59 · 59 阅读 · 0 评论 -
DP区间匹配问题 Leetcode 087扰乱字符串
地址https://leetcode-cn.com/problems/scramble-string/描述思想代码class Solution {public: bool isScramble(string s1, string s2) { int n=s1.length(); vector<vector<vector<bool>>> f(n,vector<vector<bool>>(n,ve原创 2021-12-10 17:20:47 · 170 阅读 · 0 评论 -
找规律 Leetcode 089格雷编码
地址https://leetcode-cn.com/problems/gray-code/描述思想代码class Solution {public: vector<int> grayCode(int n) { //第一个整数是0 vector<int> res(1,0); while(n--){ //将n-1的格雷码进行逆序复制 for(int i=res.size原创 2021-12-10 16:31:57 · 3914 阅读 · 0 评论 -
Leetcode349两个数组的交集 寻找某特定元素在hash表中是否存在:unordered_set中find()和end()函数的使用:hash.find(num)不=hash.end()
find()和end()函数的使用地址https://leetcode-cn.com/problems/intersection-of-two-arrays/submissions/描述思想代码y总class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> a转载 2021-12-08 16:26:24 · 582 阅读 · 0 评论 -
字节条跳动夏令营笔试题 Leetcode 139单词拆分O(n^3)(如何通过字符串哈希,减少时间复杂度,之后改进----O(n^2))
地址https://leetcode-cn.com/problems/word-break/描述思想可以借助字符串哈希的方式,减少时间复杂度,这个之后有时间再研究吧。代码class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { int n=s.length(); vector<bool> f(n+1,false);原创 2021-12-08 15:57:14 · 64 阅读 · 0 评论 -
完全背包问题模型转换 Leetcode 322零钱兑换 Leetcode 518零钱兑换II
地址https://leetcode-cn.com/problems/coin-change/submissions/描述思想代码class Solution {public: //本题可以看出是完全背包问题,那怎么向我们熟悉的完全背包模型进行转化呢 //可以将amount看为背包的体积m,将coin的面额看为单个物品的体积,将物品的价值看为1 //因此本题实质上试求装满背包后,背包装载的最小价值是多少 int coinChange(vector<int&原创 2021-12-08 13:55:41 · 81 阅读 · 0 评论 -
二维费用的背包问题 Leetcode 474一和零
地址https://leetcode-cn.com/problems/ones-and-zeroes/描述思想二位费用背包问题见题解:DP算法提高课:二维代码class Solution {public: int findMaxForm(vector<string>& strs, int m, int n) { vector<vector<int>> f(m+1,vector<int>(n+1));原创 2021-12-08 09:10:22 · 123 阅读 · 0 评论 -
01背包例题
01背包题解https://blog.csdn.net/qq_52934831/article/details/120102264?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163885949416780265422628%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=1638859494167802654原创 2021-12-07 16:10:59 · 93 阅读 · 0 评论 -
单调栈 基于Leetcode 084 柱状图中最大的矩形思想-----Leetcode 085最大矩形
Leetcode 084题解地址https://blog.csdn.net/qq_52934831/article/details/121753758地址https://leetcode-cn.com/problems/maximal-rectangle/submissions/描述思想代码class Solution {public: //借助84题求柱状图中最大的矩形 int largestRectangleArea(vector<int>& h)原创 2021-12-06 20:46:06 · 91 阅读 · 0 评论 -
单调栈-----ACwing830找到每个数左边第一个比它小的数(存y)---(例题Leetcode084柱状图中最大的矩形)(例题既找左边也找右边,且存下标)
地址https://www.acwing.com/problem/content/description/832/描述思想动态过程代码模板#include <iostream>#include <stack>using namespace std;const int N=1e5+10;int a[N];stack<int> s;int main(){ int n; cin>>n; for(int i=0;原创 2021-12-06 20:01:15 · 100 阅读 · 0 评论 -
Leetcode088合并两个有序数组(归并排序部分)
地址https://leetcode-cn.com/problems/merge-sorted-array/描述思想代码class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { //本题为了防止nums1中数字被nums2中数字覆盖,从后往前遍历 int k=n+m-1;//存数指针原创 2021-12-06 16:55:28 · 86 阅读 · 0 评论 -
Leetcode 086分隔链表(快速排序部分)
地址https://leetcode-cn.com/problems/partition-list/描述思想代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr)原创 2021-12-06 16:23:46 · 59 阅读 · 0 评论 -
Leetcode 082删除排序链表中重复元素II
地址https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/submissions/描述思想代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * List原创 2021-12-06 11:18:38 · 272 阅读 · 0 评论 -
双指针问题 Leetcode 080删除有序数组中重复元素 (问题汇总)(推广至每个元素 最多出现k次 )
子问题Leetcode 026删除有序数组中重复元素:https://blog.csdn.net/qq_52934831/article/details/121370379?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163871986016780255281827%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_原创 2021-12-06 00:00:54 · 3551 阅读 · 0 评论 -
DFS(暴力枚举) Leetcode 079单词搜索
地址https://leetcode-cn.com/problems/word-search/submissions/描述思想代码class Solution {public: bool exist(vector<vector<char>>& board, string word) { //枚举起点 for(int i=0;i<board.size();i++){ for(int j=0;j原创 2021-12-05 21:47:53 · 57 阅读 · 0 评论 -
DFS 如何避免重复母题 Leetcode 077组合(人为规定选取顺序:本题为只能从前往后选,好马不吃回头草)(类似题:Leetcode047全排列(可能含重复元素)-回溯法加剪枝)
类似题Leetcode047全排列(可能含重复元素)-----------回溯法加剪枝https://blog.csdn.net/qq_52934831/article/details/119578852地址https://leetcode-cn.com/problems/combinations/submissions/描述思想人为规定选取顺序:本题为只能从前往后选代码class Solution {public: vector<int> temp; ve原创 2021-12-05 20:58:28 · 92 阅读 · 0 评论 -
滑动窗口算法 Leetcode 076最小覆盖字串(核心思想:哈希表,有效字符cnt的统计)(类似Leetcode 030)
类似题(滑动窗口,哈希表)Leetcode030串联所有单词的字串:https://blog.csdn.net/qq_52934831/article/details/121443501?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163870610216780265458624%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&原创 2021-12-05 20:10:36 · 242 阅读 · 0 评论 -
Leetcode 075颜色分类(头条二面算法题)(荷兰国旗问题)
地址https://leetcode-cn.com/problems/sort-colors/描述思想三指针:维护[0,j-1]都是0,[j,i-1]都是1,[k+1,n-1]都是2.a[i]的三种情况:代码class Solution {public: void sortColors(vector<int>& nums) { for(int i=0,j=0,k=nums.size()-1;i<=k;){ i原创 2021-12-05 19:18:02 · 69 阅读 · 0 评论 -
Leetcode073 矩阵置零(仅使用常量空间的解决方案)(tricky偷鸡懂不懂啊)
地址https://leetcode-cn.com/problems/set-matrix-zeroes/描述思想代码class Solution {public: void setZeroes(vector<vector<int>>& matrix) { //n行数,m列数 int n=matrix.size(),m=matrix[0].size(); int r0=1,c0=1;原创 2021-12-05 17:10:19 · 71 阅读 · 0 评论 -
Java格式化数字 NumberFormat及DecimalFormat
传送门https://blog.csdn.net/a1064072510/article/details/89887633?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163862746116780264016733%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163862746116780264016733转载 2021-12-04 22:19:16 · 302 阅读 · 0 评论 -
C++ string类的+与+=运算符巧妙运用 Leetcode 071简化路径(括号匹配的升级版)
地址https://leetcode-cn.com/problems/simplify-path/描述思想+和+=的区别具体可以看我写的题解:https://blog.csdn.net/qq_52934831/article/details/121692949str=str+a;会先将等号右边的两个string对象内容相加,得到一个新的string对象,再把这个新的对象赋给等号左边的string对象。str+=a;直接将等号右边的string对象内容追加到左边的string对象后面。s原创 2021-12-03 14:28:30 · 346 阅读 · 0 评论 -
Leetcode 068文本左右对齐
地址https://leetcode-cn.com/problems/text-justification/submissions/描述思想代码class Solution {public: vector<string> fullJustify(vector<string>& words, int maxWidth) { vector<string> res; for(int i=0;i<words.原创 2021-12-03 08:49:31 · 152 阅读 · 0 评论 -
简单DP问题 Leetcode070 爬楼梯
地址https://leetcode-cn.com/problems/climbing-stairs/描述思想代码class Solution {public: int climbStairs(int n) { if(n==1) return 1; int f[n+1]; f[1]=1,f[2]=2; for(int i=3;i<=n;i++){ f[i]=f[i-1]+f[i-2];原创 2021-12-01 17:06:33 · 54 阅读 · 0 评论 -
Leetcode 067二进制求和(主要学思维)
地址https://leetcode-cn.com/problems/add-binary/submissions/描述思想代码class Solution {public: string addBinary(string a, string b) { string c; reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); int t=0; for原创 2021-12-01 16:20:00 · 61 阅读 · 0 评论 -
DP问题 Leetcode062、063、064不同路径、不同路径II、最小路径和
地址https://leetcode-cn.com/problems/unique-paths/https://leetcode-cn.com/problems/unique-paths-ii/submissions/描述思想代码Iclass Solution {public: int uniquePaths(int n, int m) { vector<vector<int>> f(n,vector<int>(m));原创 2021-12-01 09:16:40 · 76 阅读 · 0 评论 -
Leetcode060第k个排序
地址https://leetcode-cn.com/problems/permutation-sequence/描述思想代码class Solution {public: string getPermutation(int n, int k) { string res; vector<bool> st(10); for(int i=0;i<n;i++){ /*2-每次填一个位置,计算填这个数总共原创 2021-12-01 07:35:30 · 47 阅读 · 0 评论 -
Leetcode056区间合并
地址https://leetcode-cn.com/problems/merge-intervals/描述思想vector支持排序且以第一个元素作为第一关键字,第二个元素作为第二关键字代码class Solution {public: vector<vector<int>> merge(vector<vector<int>>& a) { vector<vector<int>> ans;原创 2021-11-30 19:43:03 · 458 阅读 · 0 评论 -
偏移量 Leetcode054螺转矩阵、Leetcode059螺转矩阵II
地址https://leetcode-cn.com/problems/spiral-matrix/描述思想代码class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { int n=matrix.size(),m=matrix[0].size(); //使用偏移量解决此问题 int dx[]={0原创 2021-11-30 18:34:38 · 128 阅读 · 0 评论 -
动态规划、双指针 Leetcode 053最大子序和
地址https://leetcode-cn.com/problems/maximum-subarray/描述思想代码y总终极版class Solution {public: int maxSubArray(vector<int>& nums) { int res=INT_MIN; //此时last是f[i-1] for(int i=0,last=0;i<nums.size();i++){原创 2021-11-30 17:03:31 · 146 阅读 · 0 评论 -
快速幂思想 Leetcode 050Pow(x,n)
地址https://leetcode-cn.com/problems/powx-n/描述思想将n转为二进制表示代码class Solution {public: double myPow(double x, int n) { typedef long long LL; double res=1.0; bool is_minus=n<0; //k>>=1 即k/2 for(LL k=(a原创 2021-11-29 19:05:56 · 66 阅读 · 0 评论 -
Java String字符串的排序如何实现 及HashMap 运用 Leetcode 049字母异位词分组(哈希表的妙用)
地址https://leetcode-cn.com/problems/group-anagrams/描述思想代码class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string >> res; unordered_map<string原创 2021-11-29 18:50:24 · 331 阅读 · 0 评论 -
Leetcode 048旋转图像(将矩阵逆时针旋转90度)(先对角线翻转,再左右翻转)
代码class Solution {public: void rotate(vector<vector<int>>& matrix) { //先对角线翻转,再左右翻转 for(int i=0;i<matrix.size();i++){ for(int j=0;j<i;j++){ swap(matrix[i][j],matrix[j][i]);原创 2021-11-29 17:07:09 · 318 阅读 · 0 评论 -
Leetcode 045跳跃问题II、055跳跃问题(动态规划,贪心)
地址https://leetcode-cn.com/problems/jump-game-ii/描述思想//在当前可达的范围内寻找下一跳可以到达的最远位置代码y总的class Solution {public: int jump(vector<int>& nums) { const int n = nums.size(); vector<int> f(n); f[0] = 0; int原创 2021-11-29 16:26:00 · 200 阅读 · 0 评论 -
高精度乘法 Leetcode 043字符串相乘
地址https://leetcode-cn.com/problems/multiply-strings/submissions/描述思想代码class Solution {public: string multiply(string num1, string num2) { vector<int> a,b; int n=num1.size(),m=num2.size(); //倒着将字符串存入数组 for(i原创 2021-11-26 09:27:16 · 430 阅读 · 0 评论 -
DP 动态规划 Leetcode044 通配符匹配(与010题类似)
地址描述思想代码原创 2021-11-25 23:31:35 · 44 阅读 · 0 评论 -
栈思想 双指针Leetcode042接雨水(头条笔试原题)(双指针下回再看题解)
地址描述思想代码原创 2021-11-25 19:09:04 · 191 阅读 · 0 评论 -
将数组视为哈希表 Leetcode041缺失的第一个正数
地址https://leetcode-cn.com/problems/first-missing-positive/描述思想经过swap()交换得到以下数组代码class Solution {public: int firstMissingPositive(vector<int>& nums) { int len=nums.size(); for(int i=0;i<len;i++){ //因为nu原创 2021-11-25 16:05:26 · 444 阅读 · 0 评论 -
DFS Leetcode039组合总和、Leetcode040组合总和II
地址https://leetcode-cn.com/problems/combination-sum/https://leetcode-cn.com/problems/combination-sum-ii/submissions/描述组合总数II思想组合总和II剪枝思想:代码组合总和class Solution {public: vector<vector<int>> ans; vector<int> temp; vec原创 2021-11-25 15:09:24 · 332 阅读 · 0 评论