leetcode
helloworld0529
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
122. 买卖股票的最佳时机 II
P144. 不限次数进行股票买卖的最大利润思路:波峰和波谷之间不断卖出即可class Solution {public: int maxProfit(vector<int>& prices) { int max=0; for(int i=0; i<prices.size()-1; i++) { if(prices[i+1]>prices[i])//价格升高则卖出原创 2021-01-21 08:49:21 · 212 阅读 · 0 评论 -
55. 跳跃游戏
P106. 跳数组思路:如果一个位置能够到达,那么这个位置左侧所有位置都能到达class Solution {public: bool canJump(vector<int>& nums) { int maxdis = 0;//记录能到达的最远位置 for(int i=0; i<nums.size(); i++) { if(maxdis<i)//能到达的最远位置小于当前位置原创 2021-01-21 08:30:50 · 184 阅读 · 0 评论 -
96. 不同的二叉搜索树
149 二叉搜索树的数量解法一:动态规划记忆d[i]表示i个递增的数字能构成的二叉搜索树的数量class Solution {public: int numTrees(int n) { int d[10000]={0}; d[0]=1; d[1]=1; for(int i=2;i<=n;i++) for(int j = 1;j<=i;j++) d[i]+=d[原创 2021-01-20 15:33:43 · 123 阅读 · 0 评论 -
210.课程表Ⅱ
思路类似207,只需要增加一个数组存放入度=0的课程顺序即可class Solution {public: vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) { vector<int> indeg(numCourses); vector<vector<int>> course(numCou原创 2021-01-20 14:27:32 · 126 阅读 · 0 评论 -
207.课程表
class Solution {public: bool canFinish(int numCourses, vector<vector<int>>& prerequisites) { if(numCourses==1 || prerequisites.size()==0) return true; vector<int> indeg(numCourses);//入度表默认初始化=0 .原创 2021-01-19 14:03:39 · 124 阅读 · 0 评论 -
49.字母异位词分组
class Solution {public: string getKeyBySort(string str){ int ch[27] = {0}; string newStr=""; for(int i = 0;i<str.size();i++) ch[str[i]-'a']++;//利用int数组统计26个字母出现次数 int i = 25; while(i>=0) .原创 2021-01-19 08:56:55 · 121 阅读 · 0 评论 -
103. 二叉树的锯齿形层序遍历
层次优先遍历 BFS先进行层次遍历,然后区分奇数偶数层(偶数层倒序输出)class Solution {public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>> result; queue<TreeNode*> tmpQ; int isRev = 0; if(r原创 2021-01-18 08:22:09 · 126 阅读 · 0 评论 -
946.验证栈序列
1 模拟栈class Solution {public: bool validateStackSequences(vector<int>& pushed, vector<int>& popped) { int len = pushed.size(); stack<int>st; int i=0; while(i<len) { st.p原创 2021-01-16 15:01:11 · 160 阅读 · 0 评论 -
61.旋转链表
1 链表转环法class Solution {public: ListNode* rotateRight(ListNode* head, int k) { if(k == 0 || head == nullptr || head->next == nullptr) return head;//多个特判合到一起 int len = 0; ListNode* tmp = head; for(;tmp->原创 2021-01-16 11:05:49 · 121 阅读 · 0 评论 -
3.无重复字符的最长子串
一文带你 AC 十道题【滑动窗口】1. 暴力解法(复杂度O(n^2))#include <cstring>class Solution {public: int lengthOfLongestSubstring(string s) { if(s=="") return 0; string subs="";//sliding window int l=0,r=0; int max = 0; for(;l原创 2021-01-11 20:22:39 · 126 阅读 · 0 评论 -
94.二叉树的中序遍历 (前序/中序/后序)
数电原创 2020-07-25 15:39:14 · 137 阅读 · 0 评论 -
74.搜索二维矩阵
二分搜索模板while(l<=r){mid=l+(l-r)/2;if( <target) l=mid+1;else if( >target) r=mid-1;else //找到了;}没找到class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { if(matrix.empty() || mat...原创 2020-07-23 11:24:43 · 150 阅读 · 0 评论 -
11.盛水最多的容器
class Solution {public: int maxArea(vector<int>& height) { if(height.size()==2) return min(height[1],height[0]); int l=0,r=height.size()-1; int max=min(height[r],height[l])*(r-l); while(l<r) { ..原创 2020-07-23 08:01:33 · 149 阅读 · 1 评论 -
151.翻转字符串里的单词
class Solution {public: string reverseWords(string s) {//利用双指针取单词放入stack stack<string> st; int l = 0, len = s.size() - 1; string tmp = ""; if (s.size() == 0 || s == "") return "";//特判 while (s[len] == ' '&& len .原创 2020-07-21 10:27:58 · 138 阅读 · 0 评论
分享