代码改变世界

Rotate Image

2015-04-11 15:25 by 笨笨的老兔子, 149 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个n*n的二维向量,顺时针旋转90度 class Solution {public: void rotate(vector > &matrix) { int length = matrix.size(); for (int i = 0; i < length/2; i++) { for (int j = i; j < le... 阅读全文

Length of Last Word

2015-04-11 11:16 by 笨笨的老兔子, 136 阅读, 0 推荐, 收藏, 编辑
摘要:一个字符串由单词和空格组成,求最后一个单词的长度 注意点:小心最后有一串空格的样例 class Solution {public: int lengthOfLastWord(const char *s) { int length = 0; int i = strlen(s) - 1; while (i>=0 &&s[i] == ' ') ... 阅读全文

Binary Tree Level Order Traversal

2015-04-11 11:06 by 笨笨的老兔子, 134 阅读, 0 推荐, 收藏, 编辑
摘要:从根节点开始按层次遍历一棵二叉树 思路:广搜即可 class Solution {public: vector > levelOrder(TreeNode *root) { vector > resVec; if (!root) return resVec; queue nodeQue; nodeQue.push(... 阅读全文

Maximum Depth of Binary Tree

2015-04-11 10:58 by 笨笨的老兔子, 112 阅读, 0 推荐, 收藏, 编辑
摘要:求一棵树的最大深度 思路:广度优先搜索即可 class Solution {public: int maxDepth(TreeNode *root) { int depth = 0; if (!root) return depth; queue nodeQue; nodeQue.push(root); ... 阅读全文

Same Tree

2015-04-11 10:50 by 笨笨的老兔子, 127 阅读, 0 推荐, 收藏, 编辑
摘要:判断两棵树是否对称 class Solution {public: bool isSameTree(TreeNode *p, TreeNode *q) { if (!p && !q) return true; if (p && !q) return false; if (!p && q) ... 阅读全文

Symmetric Tree

2015-04-11 10:49 by 笨笨的老兔子, 130 阅读, 0 推荐, 收藏, 编辑
摘要:判断一棵树是否对称 思路:用递归的方法判断即可。有一个小tips,判断两个节点是否全为空或者全不为空是可以用异或,少写一些代码 class Solution {public: bool isSymmetric(TreeNode *root) { if (!root) return true; return sym(root->left, ro... 阅读全文

Surrounded Regions

2015-04-10 19:55 by 笨笨的老兔子, 131 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个由字符'X'和‘O’组成的矩阵,消除所有被‘X’包围的‘O’ X X X XX O O XX X O XX O X X变成X X X XX X X XX X X XX O X X思路:有点像围棋里一块区域是否有气,只有有气的才能存活下来。即只有‘O’到达了四条边界才可以存活,因此从四条边界开始做广搜,将所有搜索到的'O'赋值为‘1’,然后遍历整个矩阵将所有之前没有被赋值的‘O’赋值为‘X’... 阅读全文

Triangle

2015-04-10 15:03 by 笨笨的老兔子, 182 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个二维整数向量,里面存有一个三角形,三角形中每一个点的值表示到达该点的开销,每一步只能到下一层的相邻节点,求从顶点到底部开销最小的路径,返回其开销。 2 3,4 6,5,7 4,1,8,32 + 3 + 5 + 1 = 11思路:从顶点开始将每一层的点更新为到达该点所需要的最小开销,最终查找底层的最小值即可。 class Solution {public: int... 阅读全文

Path Sum

2015-04-10 09:52 by 笨笨的老兔子, 119 阅读, 0 推荐, 收藏, 编辑
摘要:给定一个二叉树和一个整数,求是否存在一条从根节点到叶节点的路径,路径上所有点的和等于给定的整数 思路:用广度优先搜索,将当前节点的值传到下一层节点即可。即将每一个节点的值更新为从根节点到该点的值的和 class Solution {public: bool hasPathSum(TreeNode *root, int sum) { if (!root) r... 阅读全文

Minimum Depth of Binary Tree

2015-04-09 20:31 by 笨笨的老兔子, 174 阅读, 0 推荐, 收藏, 编辑
摘要:求一棵二叉树的最低子树的高度 思路:用队列实现广度优先搜索即可,将每一层的节点放入队列,然后弹出时将下一层节点放入,遇到叶子节点时即返回当前的高度 class Solution {public: int minDepth(TreeNode *root) { if (!root) return 0; int length = 0; ... 阅读全文