
leetcode
lmkbuffon
永言配命,自求多福
展开
-
LeetCode 120
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。思路:最后一层是:4 1 8 3向上一次: 7 6 10两次: ...原创 2019-06-28 19:43:31 · 210 阅读 · 0 评论 -
剑指offer:二叉树中和为某一值的所有路径
题目:输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路:经典的动态规划问题,用递归的思路解决。判断当前节点是否是叶子节点,如果是叶子节点,对比target和叶子节点的value是否相等,相等则保存起来;否则用target减去当前节点的v...原创 2019-08-06 19:59:21 · 157 阅读 · 0 评论 -
剑指offer:字符串的全排列
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解题思路:经典的动态规划问题,固定第一个字符,然后依次将后面的字符串与前面的交换,那么排列的个数就是除了第一个字符以外,其他字符的排列个数+1。也就是固定一个字符串之后,之后再将问题变小,只需求出后面子串的排列个数就可以得...原创 2019-08-08 19:00:44 · 323 阅读 · 0 评论 -
剑指offer:二叉搜索树的后序遍历序列
剑指offer:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class VerifySquenceOfBST { //后序遍历:遍历得到的序列的最后一个节点是根节点 //二叉搜索树:以根节点为界,左子树的值全部小于根节点, // 右子树的值全部大于根节...原创 2019-08-05 18:41:38 · 241 阅读 · 0 评论 -
剑指offer:数组中出现次数超过一半的数字
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路:如果有符合条件的数字,则它出现的次数比其他所有数字出现的次数和还要多。在遍历数组时保存两个值:一是数组中一个数字,一是次数。遍历下一个数字时,若它与之前保存的数字相同...原创 2019-08-07 23:30:03 · 134 阅读 · 0 评论 -
剑指offer:栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)import java.util.Stack;public class IsPop...原创 2019-08-03 23:21:33 · 93 阅读 · 0 评论 -
LeetCode:96 不同的二叉搜索树
给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种?n = 3时,有5种 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ ...原创 2019-08-03 22:52:22 · 170 阅读 · 0 评论 -
LeetCode 91
一条包含字母A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 "BZ" (2 26), "...原创 2019-06-30 18:55:36 · 203 阅读 · 0 评论 -
LeetCode 64
public class MinPathSum { /** * 第64题 * 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径, * 使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。 * [1,3,1], * [1,5,1], * [4,2,1] * <p>...原创 2019-06-27 22:29:58 · 258 阅读 · 1 评论 -
剑指offer:将二叉搜索树转变成双向链表
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:手动写一颗二叉搜索树,发现中序遍历的结果是有序的,那么将中序遍历的结果保存起来,然后遍历结果集合,更改树节点的指向即可。import java.util.LinkedList;public class Convert { public static voi...原创 2019-08-06 20:47:07 · 252 阅读 · 0 评论