摘要: 仅供自己学习 思路: 直接遍历判断即可 class Solution { public: int calculate(string s) { int n=s.length(); int x=1,y=0; for(int i=0;i<n;++i){ if(s[i]=='A') x = 2*x+y; e 阅读全文
posted @ 2021-04-03 22:46 Mrsdwang 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: 按照题目要求我们需要定义一个head头节点,并且因为树是二叉搜索树,所以要采取中序遍历才能得到从小到大的排序。 按照中序遍历的模板 dfs(root->left); cout<<root->val; dfs(root->right); 同样我们也通过这个模板写DFS,这里因为是 阅读全文
posted @ 2021-04-03 12:22 Mrsdwang 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: 因为这是求公共子序列,不是公共子字串,所以公共的元素可以不连续,那么暴力为每个字符找相同的字符就需要O(n^2)的时间。 考虑用两个string的长度做二维矩阵,用动态规划。定义dp[i][j]为text1长度为i,text2长度为j是的公共子序列长度,text[0:i]定义为 阅读全文
posted @ 2021-04-03 11:37 Mrsdwang 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 仅供自己学习 思路: 我们通过DFS递归把所有的分支到叶子节点的都计算看是不是满足这个目标值。 首先判断递归传入的root是否是NULL,如果是就返回,不是就把这个sum-root->val,然后加入进path中去,如果 sum=0说明这条路是满足了target,那么久加入进res中,加入后不直接r 阅读全文
posted @ 2021-04-03 00:47 Mrsdwang 阅读(39) 评论(0) 推荐(1) 编辑