Leedcode
XJH-
这个作者很懒,什么都没留下…
展开
-
力扣小记。
开始做题的时间,也将近一个月了,提交了一百一十五题。一开始,就连一道简单题都要用将近一个钟的时间完成。但因为是简单题,但总还会有思路,只是需要用“复杂”的代码来艰难地实现自己的想法与功能。过了一段时间,我开始可以对简单题重拳出击,一天做的题最多有十三道。成就感那是一波一波地来。随着题目做得越来越多,我我也开始接触一些中等题,或者是动态规划之类地题目。(好难)近几天的题目练思路都想不出来,更不要说什么实现了。(就是DP这玩意)总是看答案,好烦。加油吧。...原创 2021-11-09 19:23:17 · 161 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找——记录(C++)
class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int y=matrix.size(); if(y==0) { return 0; } int x=matrix[0].size(); int a=0; in.原创 2021-11-07 20:28:30 · 607 阅读 · 0 评论 -
1567. 乘积为正数的最长子数组长度——记录(C++)
class Solution {public: int getMaxLen(vector<int>& nums) { int m=0; int ma=0; if(!nums.size()) return 0; int pre=nums[0]; if(pre>0) { ma=1; } for(int i=1;i<.原创 2021-11-07 11:11:24 · 235 阅读 · 0 评论 -
116. 填充每个节点的下一个右侧节点指针——记录(C++)
class Solution {public: queue<Node*>q; Node* connect(Node* root) { if(!root) return root; q.push(root); int sz; while(!q.empty()) { sz=q.size(); Node* n=q.front(); .原创 2021-11-07 09:49:18 · 375 阅读 · 0 评论 -
617. 合并二叉树——记录(C++)
class Solution {public: TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) { if(root1&&root2) { root1->val+=root2->val; if(root1->left&&root2->left) mergeTrees(root1->left,root2-&.原创 2021-11-07 09:11:20 · 350 阅读 · 0 评论 -
695. 岛屿的最大面积——记录(C++)
class Solution {public: int m=0; int x; void r(vector<vector<int>>& grid,int i,int j) { int h=grid.size(); int w=grid[0].size(); if(i<h&&i>=0&&j<w&&j>=0) .原创 2021-11-06 09:39:41 · 193 阅读 · 0 评论 -
733. 图像渲染——记录(C++)
class Solution {public: vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) { int x=image[sr][sc]; if(x==newColor) { return image; } .原创 2021-11-06 08:02:48 · 156 阅读 · 0 评论 -
567. 字符串的排列——记录(C++)
class Solution {public: bool checkInclusion(string s1, string s2) { int l1=s1.size(); int l2=s2.size(); if(l2<l1) { return 0; } vector<int>a(123,0); for(int i=0;i<l1;i++).原创 2021-11-05 08:31:51 · 65 阅读 · 0 评论 -
98. 验证二叉搜索树——记录(C++)
class Solution {public: vector<int>v; void x(TreeNode* r) { if(r) { x(r->left); v.push_back(r->val); x(r->right); } } bool isValidBST(TreeNode* root) { .原创 2021-11-05 08:00:40 · 69 阅读 · 0 评论 -
653. 两数之和 IV - 输入 BST——记录(C++)
class Solution {public:vector<int>v; void r(TreeNode* x) { if(x) { r(x->left); v.push_back(x->val); r(x->right); } } bool findTarget(TreeNode* root, .原创 2021-11-05 07:37:43 · 65 阅读 · 0 评论 -
235. 二叉搜索树的最近公共祖先
class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { while(root) { if(p->val<=root->val&&q->val>=root->val||q->val<=root->val&&p->val..原创 2021-11-05 07:12:51 · 47 阅读 · 0 评论 -
169. 多数元素——记录(C++)
class Solution {public: int majorityElement(vector<int>& nums) { sort(nums.begin(),nums.end()); int x=1; if(nums.size()==1) { return nums[0]; } for(int i=0;i<nums.size();i++) .原创 2021-11-04 22:30:53 · 63 阅读 · 0 评论 -
155. 最小栈——记录(C++)
class MinStack { stack<int>a; vector<int>m;public: MinStack() { } void push(int val) { a.push(val); if(a.size()==1) { m.push_back(val); } else { .原创 2021-11-04 22:19:45 · 52 阅读 · 0 评论 -
136. 只出现一次的数字——记录(C++)
class Solution {public: int singleNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); int i=1; if(nums.size()<2) { return nums[0]; } if(nums[0]!=nums[1]) { .原创 2021-11-04 20:53:31 · 67 阅读 · 0 评论 -
367. 有效的完全平方数——记录(C++)
class Solution {public: bool isPerfectSquare(int num) { int x=0; int a=1; while(num>0) { num-=a; a=a+2; } if(x==num) { return true; } retur.原创 2021-11-04 12:27:49 · 47 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串——记录(C++)
class Solution {public: string reverseLeftWords(string s, int n) { int l=s.size(); string a(l,0); int j=0; for(int i=n;i<l;i++) { a[j]=s[i]; j++; } for(int i=0;i<n.原创 2021-11-04 12:23:56 · 44 阅读 · 0 评论 -
剑指 Offer 05. 替换空格——记录(C++)
class Solution {public: string replaceSpace(string s) { for(int i=0;i<s.size();i++) { if(s[i]==' ') { string st(s.begin(),s.begin()+i); string t(s.begin()+i+1,s.end()); .原创 2021-11-04 12:08:07 · 51 阅读 · 0 评论 -
701. 二叉搜索树中的插入操作——记录(C++)
class Solution {public: TreeNode* insertIntoBST(TreeNode* root, int val) { TreeNode* m=root; TreeNode* x=root; while(root) { x=root; if(val<root->val) { ro..原创 2021-11-04 06:53:38 · 62 阅读 · 0 评论 -
700.二叉搜索树中的搜索——记录(C++)
class Solution {public: TreeNode* a; TreeNode* searchBST(TreeNode* root, int val) { if(root) { if (root->val==val) { a=root; return root; } search.原创 2021-11-04 06:24:28 · 82 阅读 · 0 评论 -
740.删除并获得点数——记录(C++)
class Solution {public: int deleteAndEarn(vector<int>& nums) { int maxa=0; for(int tm:nums) { maxa=max(maxa,tm); } vector<int>a(maxa+1); for(int tn:nums) { .原创 2021-11-03 18:14:57 · 50 阅读 · 0 评论 -
213.打家劫舍Ⅱ——记录(C++)
class Solution {public: int rob(vector<int>& nums) { int size=nums.size(); vector<int>dq(size); vector<int>dq2(size); if(size==0) { return 0; } if(size=...原创 2021-11-03 13:52:42 · 122 阅读 · 0 评论 -
557.反转字符串中的单词Ⅲ——记录(C++)
class Solution {public: string reverseWords(string s) { int l=s.size(); int i=0; int j=0; while(j<l-1) { if(s[j]!=' ') { ++j; } else .原创 2021-11-03 09:47:55 · 50 阅读 · 0 评论 -
344.反转字符串——记录(C++)
class Solution {public: void reverseString(vector<char>& s) { reverse(s.begin(),s.end()); }};先抖个机灵~class Solution {public: void reverseString(vector<char>& s) { int l=s.size()-1; int i=0; .原创 2021-11-03 09:40:36 · 36 阅读 · 0 评论 -
112.路径总和——记录(C++)
class Solution {public: bool hasPathSum(TreeNode* root, int targetSum) { if(root) { int x=targetSum-root->val; if(!root->left&&!root->right) { return x==0; .原创 2021-11-03 09:31:01 · 71 阅读 · 0 评论 -
剑指 Offer 30. 包含min函数的栈——记录(C++)
class MinStack {public: /** initialize your data structure here. */ stack<int>s; vector<int>v; MinStack() { } int t; void push(int x) { s.push(x); if(s.size()==1) { t=x; .原创 2021-11-02 22:04:28 · 74 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列——记录(C++)
class CQueue {public: CQueue() { } stack<int>a; stack<int>b; void appendTail(int value) { a.push(value); } int deleteHead() { if(a.empty()) { return -1; } else .原创 2021-11-02 20:19:27 · 71 阅读 · 0 评论 -
746.使用最小花费爬楼梯——动态规划——记录(C++)
class Solution {public: int minCostClimbingStairs(vector<int>& cost) { int n = cost.size(); vector<int> dp(n + 1); dp[0] = dp[1] = 0; for (int i = 2; i <= n; i++) { dp[i] = min(dp[i - 1] .原创 2021-11-02 19:54:26 · 61 阅读 · 0 评论 -
70.爬楼梯——记录(C++)
class Solution {public: int climbStairs(int n) { int i=1; int j=2; int s=0; int k=2; if(n==1||n==2) { return n; } while(k<n) { s=i+j; i=j;.原创 2021-11-02 18:59:00 · 88 阅读 · 0 评论 -
167.两数之和Ⅱ——记录(C++)
class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int low = 0, high = numbers.size() - 1; while (low < high) { int sum = numbers[low] + numbers[high]; if (sum == .原创 2021-11-02 15:45:49 · 70 阅读 · 0 评论 -
283.移动零——记录(C++)
class Solution {public: void moveZeroes(vector<int>& nums) { int z=0; for(int i=0;i<nums.size();i++) { if(nums[i]==0) { nums.erase(nums.begin()+i); i--; .原创 2021-11-02 15:07:31 · 48 阅读 · 0 评论 -
102.二叉树的层序遍历——记录(C++)
class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>>a; if (root == nullptr) return a; queue<TreeNode*>q; int i=0; q.push(root); vector<in.原创 2021-11-02 13:25:14 · 76 阅读 · 0 评论 -
101.对称二叉树——记录(C++)
class Solution {public: int x=1; void lh(TreeNode* r,TreeNode* l) { if(r&&l) { if(r->val!=l->val) { x=0; } lh(r->left,l->right);.原创 2021-11-02 09:18:21 · 82 阅读 · 0 评论 -
104.二叉树的最大深度——记录(C++)
class Solution {public:int x;int m;void re(TreeNode* r){ ++m; if(r) { x=max(x,m); re(r->left); --m; re(r->right); --m; }} int maxDepth(TreeNode* root) { re(root); return x; }}.原创 2021-11-02 07:49:54 · 66 阅读 · 0 评论 -
1137.第N个泰波那契数——记录(C++)
class Solution {public: int tribonacci(int n) { int i=3; int l=0; int m=1; int r=1; int q=0; if(n==0) { return 0; } else if(n<3) { return 1; .原创 2021-11-01 22:47:51 · 98 阅读 · 0 评论 -
509.斐波那契数——记录(C++)
class Solution {public: int fib(int n) { int l=0; int r=1; int i=2; int q=n; while(i<=n&&i>1) { q=r+l; l=r; r=q; ++i; } retu.原创 2021-11-01 22:25:33 · 51 阅读 · 0 评论 -
575.分糖果——记录(C++)
class Solution {public: int distributeCandies(vector<int>& candyType) { unordered_map<int,int>m; int l=candyType.size(); int t=0; for(int i=0;i<l;i++) { if(m.count(candyType[i])==.原创 2021-11-01 20:15:15 · 264 阅读 · 0 评论 -
189.旋转数组——记录(C++)
class Solution {public: void rotate(vector<int>& nums, int k) { vector<int>n; int l=nums.size(); while(k>l) { k-=l; } for(int i=l-k;i<l;i++) { n.pus.原创 2021-11-01 15:41:24 · 59 阅读 · 0 评论 -
977.有序数组的平方——记录(C++)
class Solution {public: vector<int> sortedSquares(vector<int>& nums) { int l=nums.size()-1; int x=l; for(int i=0;i<l;i++) { if(nums[i+1]>0) { x=i; .原创 2021-11-01 13:46:57 · 165 阅读 · 0 评论 -
145.二叉树的后序遍历——记录(C++)
class Solution {public: vector<int>v; void pos(TreeNode* r) { if(r) { pos(r->left); pos(r->right); v.push_back(r->val); } } vector<int> postorderTraversa.原创 2021-11-01 12:30:06 · 43 阅读 · 0 评论 -
94.二叉树的中序遍历——记录(C++)
class Solution {public: vector<int>r; void pre(TreeNode* n) { if(n) { pre(n->left); r.push_back(n->val); pre(n->right); } } vector<int> inorderTra.原创 2021-11-01 12:22:28 · 65 阅读 · 0 评论