- 博客(11)
- 收藏
- 关注
原创 关于leetcode上“课程表2”的练习
代码如下:class Solution {public: vector<int> findOrder(int num, vector<vector<int>>& proj) { return TopoSort(num,proj);} vector<int> TopoSort(int num,vector<vector<int>>& proj){ vector<i
2020-05-19 17:55:36
230
原创 关于leetcode上的“课程表”的练习
class Solution {public: bool dfs(vector<vector<int>> &AdjacencyList,vector<int> &Visit,int numCourses,int Nodenum){ if( Visit[Nodenum] == 1 ) return false; if( Visit[Nodenum] == 2 ) return true; Visit[Nodenum] = 1; for
2020-05-19 17:47:31
115
原创 关于leetcode中的“对称二叉树”的练习
代码如下:class Solution {public: bool isSymmetric(TreeNode* root) { if(root == NULL) return true; return isMirror(root->left,root->right); } bool is...
2020-04-28 20:05:27
96
原创 关于leetcode中“相同的树”的练习
代码如下:class Solution {public: bool isSameTree(TreeNode* m, TreeNode* n) { if (!m && !n) return true; if (m && n) { if (m ->...
2020-04-28 19:48:56
102
原创 关于leetcode的“最小栈”的练习
·解题思路·采用双栈的办法以空间换时间,栈s1作为普通的数据栈,栈s2用来保存每次入栈时的较小值,这样s2栈顶的值总是栈中元素的最小值。代码如下:class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) {...
2020-03-24 14:47:12
93
原创 关于leetcode的“逆波兰表达式求值”的练习
·解题思路·利用栈,如果是数字就压入栈,字符串到数字转换用stoi,如果是符号就把栈头两个数字出栈,然后进行运算后再入栈,直到栈里只剩下一个数字。改了几遍,没有改进,放弃了。class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> st; ...
2020-03-24 14:03:22
121
原创 关于leetcode的“有效的括号”的练习
·解题思路·字符串要达到特殊的“对称”,括号才是有效的,因此可以借助栈,不过要注意先把边界写好,例如空字符串和奇数个符号的情况就不用进入循环,直接返回结果。入栈时,需要先判断,如果碰到一对满足条件的括号,例如(){} ,就弹出;不满足就入栈,空栈也入栈,若最后栈为空,代表字符串是有效的。代码如下:class Solution{public: bool isValid(string ...
2020-03-24 13:11:14
87
原创 关于leetcode上“买卖股票的最佳时机”的练习
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。·动态规划求解·emm,这个和最大子序列和的思路有点像找到状态转移方程:maxc= max(maxc, prices[i] - minvalue),maxc为前i天的最大收益,minvalue为前i天...
2020-03-01 19:57:25
100
原创 关于leetcode上“合并两个有序数组”的练习
方法从nums1尾部开始,依次将nums1、nums2中数字由大到小填入到nums1中。class Solution {public: void merge(vector<int>& nums1, int x, vector<int>& nums2, int y) { if(m == 0 )swap(nums1,num...
2020-03-01 18:58:47
93
原创 关于LeetCode上“最大子序和”的练习
·暴力法解题·挺简单的,就直接贴代码了private int maxsum = Integer.MIN_VALUE; public int maxSubArray(int[] nums) { int sum; for (int i = 0; i < nums.length; i++) { sum ...
2020-03-01 17:06:16
89
原创 关于leetcode上‘两数之和’的学习
一开始看到这个题目时,最先想到的就是暴力破解法,暴力法很简单,直接检索nums里每一个x并再次查找nums中是否存在一个与target-x相等的目标值。暴力破解:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int len...
2020-02-18 18:44:03
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人