LintCode
雄性皮卡丘
。。
展开
-
LintCode | 366.Feibonacci
查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …快速矩阵幂解法class Solution { public int fibonacci(int n) {原创 2017-03-03 21:14:12 · 218 阅读 · 0 评论 -
LintCode | 93. 平衡二叉树
给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 题目链接递归解决,递归函数每次返回两棵子数的深度,并进行比较,相等或相差仅为1则返回最大值,否则返回-1。用-1表示该子树已不平衡。/** * Definition of TreeNode: * public class TreeNode { *原创 2017-03-15 19:25:26 · 533 阅读 · 0 评论 -
LintCode | 177. 把排序数组转换为高度最小的二叉搜索树
给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 注意事项 There may exist multiple valid solutions, return any of them.先找出最中间的数,再分别找出左右两边子数组最中间的数,递归求解/*** Definition of TreeNode:* public class TreeNode { * p原创 2017-03-31 23:58:42 · 211 阅读 · 0 评论 -
LintCode | 111. 爬楼梯
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 题目链接DP基础题,不多说了。取模可以减少空间浪费。public class Solution { /** * @param n: An integer * @return: An integer */ public int climbSta原创 2017-03-24 19:26:48 · 395 阅读 · 0 评论 -
LintCode | 167. 链表求和
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。/*** Definition for singly-linked list.* public class ListNode { * int val; * ListNode next; * ListNo原创 2017-03-14 20:15:12 · 606 阅读 · 0 评论 -
LintCode | 66. 二叉树的前序遍历
给出一棵二叉树,返回其节点值的前序遍历。 题目链接/*** Definition of TreeNode:* public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = v原创 2017-03-23 15:23:58 · 626 阅读 · 0 评论 -
LintCode | 569. Add Digits
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. 样例 Given num = 38. The process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit,原创 2017-03-13 20:04:27 · 250 阅读 · 0 评论 -
LintCode | 68. 二叉树的后序遍历
给出一棵二叉树,返回其节点值的后序遍历。 题目链接/*** Definition of TreeNode:* public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = v原创 2017-03-22 18:34:10 · 323 阅读 · 0 评论 -
LintCode | 408. 二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。比较蠢的办法public class Solution { public String addBinary(String a, String b) { //分别用 max min 指向长度最长 最短字符串 String max, min; if(a.length() > b.length())原创 2017-03-12 21:23:01 · 307 阅读 · 0 评论 -
LintCode | 55. 比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是大写字母 题目链接public class Solution { /** * @param A : A string includes Upper Case letters * @param B : A string includes Upper Case letter * @原创 2017-03-28 22:18:13 · 644 阅读 · 0 评论 -
LintCode | 480. 二叉树的所有路径
给一棵二叉树,找出从根节点到叶子节点的所有路径。 题目链接可参考376题一起做/*** Definition of TreeNode:* public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { *原创 2017-03-21 13:42:32 · 287 阅读 · 0 评论 -
LintCode | 632. Binary Tree Maximum Node
ind the maximum node in a binary tree, return the node.水题一道,直接po代码public class Solution { public TreeNode maxNode(TreeNode root) { //先判空 if(root == null) return null; //先将父原创 2017-03-07 19:01:32 · 1153 阅读 · 0 评论 -
LintCode | 376. 二叉树的路径和
给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。题目不难,关键在于想清楚递归怎么判断。/*** Definition of TreeNode:* public class TreeNode { * public int val; * public TreeNode left, right; *原创 2017-03-20 19:23:37 · 588 阅读 · 0 评论 -
LintCode | 69. 二叉树的层次遍历
给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val原创 2017-03-19 19:43:34 · 612 阅读 · 0 评论 -
LintCode | 1. A + B 问题
给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。class Solution { public int aplusb(int a, int b) { if(b == 0) return a; while(b != 0) { //对于是否产生加法进位,仅在1+1时需要,所以使用与运算 int c原创 2017-03-08 19:24:35 · 205 阅读 · 0 评论 -
LintCode | 93. 平衡二叉树
深度复制一个二叉树。 给定一个二叉树,返回一个他的 克隆品 。/*** Definition of TreeNode:* public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.原创 2017-03-26 10:45:39 · 219 阅读 · 0 评论