leetcode
文章平均质量分 74
别说话写代码.
运动 学习 防脱发
展开
-
leetcode1021 删除最外层括号(String使用append和+时间差别)
leetcode1021 删除最外层括号 题目: 有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。 如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B...原创 2019-05-02 15:03:06 · 212 阅读 · 0 评论 -
leetcode 559 N叉树的最大深度——DFS
DFS,递归 代码: /* // Definition for a Node. class Node { public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; ...原创 2019-05-04 11:52:47 · 151 阅读 · 0 评论 -
leetcode 104. 二叉树的最大深度 递归/层序遍历
一、“见树用递归” int maxDepth(struct TreeNode* root){ int left, right; if(0 == root) return 0; if(0 == root->left && 0 == root->right) return 1; left = maxDepth(root->le...转载 2019-05-03 15:36:39 · 156 阅读 · 0 评论 -
leetcode 338 比特位计数 ——dp/调用函数
DP: 状态转移方程(我也不知道是怎么得出来的): ans[i] = ans[i/2]+i%2; tql 引用博客: https://blog.csdn.net/qq_33655674/article/details/82632492 或者调用函数 __builtin_popcount(n) ...转载 2019-05-03 15:17:14 · 128 阅读 · 0 评论 -
leetcode198 打家劫舍-DP
简单的经典DP题,类似 最大子序和 状态转移方程: dp[i]=max{dp[i-1], A[i]+dp[i-2]} 代码:(vector) class Solution { public: int max(int a,int b) { return a>b?a:b; } int rob(vector<int>& nums) { int siz...原创 2019-05-03 11:23:19 · 222 阅读 · 0 评论 -
leetcode746 使用最小花费爬楼梯-dp
和leetcode70 爬楼梯类似 爬楼梯:https://blog.csdn.net/weixin_41900122/article/details/89765084 代码: #include<bits/stdc++.h> using namespace std; int N; int cost[1002]; int min(int a,int b){ return a>...原创 2019-05-03 10:36:44 · 170 阅读 · 0 评论 -
leetcode 53 最大子序和——动态规划 O(n)/分治法 O(NlogN)
最大子序和,好经典的题了 动态规划的状态转移方程: dp[i]=max{dp[i-1]+A[i], A[i]} dp[i]是以第i个元素结尾的子序和,A[i]是指第i个元素 c++的vector实现代码(O(n)的时间复杂度) class Solution { public: int maxSubArray(vector<int>& nums) { ve...原创 2019-05-02 21:58:29 · 447 阅读 · 0 评论 -
leetcode70 爬楼梯-dp
第一次直接递归函数,超时 第二次使用数组来记录,通过 class Solution { public: int climbStairs(int n){ int a[1000]; memset(a,0,sizeof(a)); a[0]=1; a[1]=1; if(n<2){ return a[n]; }else{ for(int i=2;i<=n;i++){ ...原创 2019-05-02 21:20:23 · 129 阅读 · 0 评论 -
leetcode121 买卖股票最佳时机——dp
动态规划 方程: 前i天最大收益=max{前i-1天最大收益,第i天的价钱-前i-1天的最小值} c++实现 #include<bits/stdc++.h> using namespace std; int N; int array[1000]; int ans; int minarr(int array[], int a,int b){ //a,b之间的最小值,有a有b i...原创 2019-05-02 20:56:18 · 118 阅读 · 0 评论 -
leetcode1025除数博弈——SG函数
题目: 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与...转载 2019-05-02 16:06:29 · 210 阅读 · 0 评论 -
leetcode 739. 每日温度-栈
题目: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的都是 ...原创 2019-05-06 04:25:02 · 103 阅读 · 0 评论