LeetCode
qq_35604674
这个作者很懒,什么都没留下…
展开
-
104.二叉树的最大深度
1. 递归 二叉树的最大深度 = max(左子树深度 + 右子树深度) + 1 只考虑根节点是否为空,其余交给递归处理 深度优先 #include<algorithm> class Solution { public: int maxDepth(TreeNode* root) { if(root == NULL) return 0; return max(maxDepth(root->left),maxDepth(root->rig.原创 2020-07-28 09:51:54 · 188 阅读 · 0 评论 -
62.不同路径
1. 动态规划 到达每个位置的路径数 = 到达该位置左边的路径数 + 到达该位置上边的路径数。 显然,第一行每个位置只有一条路径到达(只能向右),第一列的每个位置只有一条路径到达(只能向下)。 题目中m×n,m表示列,n表示行。双重循环行优先遍历。 class Solution { public: int uniquePaths(int m, int n) { if(m==0 || n==0) return 0; //m列n行 vect..原创 2020-07-27 08:49:24 · 105 阅读 · 0 评论 -
64.最小路径和
动态规划 右下角的最小路径 = min(上方最小路径 + 右下角,左边最小路径 + 右下角) 00位置的最小路径 = gird[0][0] 01位置的最小路径 = grid[0][0] + grid[0][1]。 …… 11位置的最小路径 = min(01,10) + grid[1][1] …… class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m = .原创 2020-07-23 10:02:12 · 67 阅读 · 0 评论 -
167. 两数之和2-输入有序数组
1. 暴力 双重循环找到两数之和等于target的两个数。 class Solution { public: vector<int> twoSum(vector<int>& numbers, int target) { if(numbers.empty()) return {-1,-1}; for(int idx1 = 0; idx1 < numbers.size()-1; ++idx1){ for(in.原创 2020-07-21 14:34:38 · 86 阅读 · 0 评论 -
1025.除数博弈
1. 找规律,数学归纳法证明 N 说明 结果 1 Alice无法进行操作 false 2 Alice选择1,bob无法进行操作 ture 3 Alice选择1,bob选择1,Alice无法进行操作 false 4 Alice选择1,剩余3,bob最终无法进行操作(alice选择2会导致false) true 规律:奇数false,偶数true 证明: N=1,N=2时满足结论 设2<N<=k时结论成立 当N=k+1, 1)k为偶数,k+1为奇数,奇数的因子为..原创 2020-07-24 14:20:49 · 101 阅读 · 0 评论