leetcode
ssevenstar
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
344. Reverse String
344. Reverse Stringcode:char* reverseString(char* s) { char *p1, *p2; if (!s || !*s) return s; for (p1 = s, p2 = s+strlen(s)-1; p1 < p2; p1++, p2--) { *p1 ^= *p2; *p2 ^= *p1; *p1 ^= *p2原创 2017-03-21 00:09:00 · 174 阅读 · 0 评论 -
70. Climbing Stairs
70. Climbing Stairs问题: 每次上楼梯可以踏一阶梯或者两阶, 问有多少中上楼梯的方式.思路: 分析一下, 其实是个fabonacci数列问题. 上至第n阶的时候可以是踏一阶,或者踏两阶, 即f(n) = f(n-1)+f(n-2)code:class Solution {public: int climbStairs(int n) { if (n <原创 2017-06-11 21:34:41 · 203 阅读 · 0 评论 -
53. Maximum Subarray
53. Maximum SubarrayKadane’s Algorithmclass Solution { public: //For example, given the array [-2,1,-3,4,-1,2,1,-5,4], //the contiguous subarray [4,-1,2,1] has the largest sum = 6 int maxSu原创 2017-06-16 16:25:35 · 194 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock
121. Best Time to Buy and Sell Stock思路: Kadane’s Algorithmcode:class Solution { public: //[7, 1, 5, 3, 6, 4] //[5, 4, 3, 2] int maxProfit(vector<int>& prices) { if (prices.size()原创 2017-06-16 12:05:06 · 180 阅读 · 0 评论 -
42. Trapping Rain Water
42. Trapping Rain Water问题: 算储水量 思路: 源于http://blog.youkuaiyun.com/linhuanmars/article/details/20888505 储水的思路很简单, 要找到左右两个岸. 使用左右两个指针, 从左右同时开始向中间遍历, 直到终止条件. 比较左岸和右岸, 移动低的指针, 同时累计储水量.code:class Solution {原创 2017-05-26 17:37:50 · 185 阅读 · 0 评论 -
102. Binary Tree Level Order Traversal
102. Binary Tree Level Order Traversal问题: 层序遍历BTree, 逐层.思路: 和普通的层序相比, 需要对每层截断一下. 逐层入队, 使用queue的size, 逐层出队,再将下一层入队.code:/** * Definition for a binary tree node. * struct TreeNode { * int val原创 2017-05-26 15:31:45 · 221 阅读 · 0 评论 -
144. Binary Tree Preorder Traversal
144. Binary Tree Preorder Traversal问题: 先序遍历二叉树思路: 先根节点,左子树,然后右子树。使用堆栈存储code:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *ri原创 2017-05-15 23:21:02 · 172 阅读 · 0 评论 -
94. Binary Tree Inorder Traversal
94. Binary Tree Inorder Traversal问题: 中序遍历二叉树思路: 先左子树,根节点,然后右子树。使用堆栈存储code:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *righ原创 2017-05-15 23:13:32 · 184 阅读 · 0 评论 -
106. Construct Binary Tree from Inorder and Postorder Traversal
106. Construct Binary Tree from Inorder and Postorder Traversal思路: recursioncode:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode原创 2017-05-25 18:04:47 · 197 阅读 · 0 评论 -
105. Construct Binary Tree from Preorder and Inorder Traversal
105. Construct Binary Tree from Preorder and Inorder Traversal思路: recursioncode:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *原创 2017-05-25 18:03:40 · 207 阅读 · 0 评论 -
563. Binary Tree Tilt
563. Binary Tree Tilt问题: 求BTree的Tilt. 节点的tilt定义为左右子树的数值和的绝对差值. 树的Tilt为所有节点的tilt之和.思路: 先得到树的tilt需要对节点求tilt, 对节点求tilt需要求出左右子树之和. 需要分左右子树并且从下向上遍历求和,最后到跟节点. 分为两个过程: 1, 对左右子树求和; 2, 求节点的tilt之和. 后序遍历比原创 2017-05-25 15:29:29 · 207 阅读 · 0 评论 -
145. Binary Tree Postorder Traversal
145. Binary Tree Postorder Traversal问题: 后序遍历二叉树思路: 1. 和前边的preorder,inorder不同,直接借助堆栈实现iterative算法似乎有些麻烦。所以先实现了递归(recursion)版本。 2. preorder的顺序是:root->left->right inorder的顺序是:left->root->right原创 2017-05-24 17:26:01 · 191 阅读 · 0 评论 -
515. Find Largest Value in Each Tree Row
515. Find Largest Value in Each Tree Row问题: 找出BTree每一层最大的数思路: 使用队列,从右向左逐层遍历code:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *原创 2017-05-01 17:03:02 · 249 阅读 · 0 评论 -
442. Find All Duplicates in an Array
442. Find All Duplicates in an Arraycode:#include <iostream> #include <vector> #include <cmath>using namespace std;ostream & operator<<(ostream &out, vector<int> &A) { for (vector<int>::iterator i原创 2017-03-21 23:56:38 · 190 阅读 · 0 评论 -
347. Top K Frequent Elements
347. Top K Frequent Elements思路: 先建立hash表统计出现的次数. 然后使用桶排序. 时间复杂度O(n)code:class Solution { public: vector<int> topKFrequent(vector<int>& nums, int k) { map<int, int> hash; for (int原创 2017-05-27 17:28:48 · 275 阅读 · 0 评论
分享