关闭
当前搜索:

剑指offer — 二叉树中的某一路径

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 使用dfs可以轻松解决 java import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNod...
阅读(9) 评论(0)

剑指offer---二叉搜索树的后序遍历序列

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同 使用递归的方式,交替进行处理 java public class Solution { public boolean VerifySquenceOfBST(int[] arr) { if (arr == null || ar...
阅读(11) 评论(0)

剑指offer — 栈的弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) java import java.util.*; public class Solution ...
阅读(16) 评论(0)

剑指offer — 数据流中的中位数

如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值 使用两个heap的方法进行处理 java import java.util.Collections; import java.util.PriorityQueue; import java.util.Queu...
阅读(16) 评论(0)

剑指offer — 把二叉树打印成多行

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行 使用bfs可以非常快速的解决 java import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int v...
阅读(14) 评论(0)

剑指offer — z字形二叉树

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推 使用bfs实现 java import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = ...
阅读(12) 评论(0)

剑指offer — 平衡二叉树

输入一棵二叉树,判断该二叉树是否是平衡二叉树 java class Tree { boolean isBalance; int deep; public Tree(boolean isBalance, int deep) { this.isBalance = isBalance; this.deep = deep; } } pub...
阅读(120) 评论(0)

剑指offer — 二叉树的深度

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 java /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...
阅读(54) 评论(0)

剑指offer — 数字在排序数组中出现的次数

剑指offer — 数字在排序数组中出现的次数 解题思路:使用两个二分法,进行处理,时间复杂度O(logn) java public class Solution { public int GetNumberOfK(int [] array , int k) { if (array == null || array.length == 0) { ...
阅读(35) 评论(0)

剑指offer ---数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size 对于%75的数据,size 对于%100的数据,size java public class...
阅读(19) 评论(0)

LeetCode 387. First Unique Character in a String

Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1. Examples: s = "leetcode" return 0. s = "loveleetcode", return 2. java ...
阅读(21) 评论(0)

剑指offer --- 第一个只出现一次的字符

在一个字符串(1 简单题,只需要使用一个另外记录顺序的数组即可 java import java.util.Arrays; public class Solution { public int FirstNotRepeatingChar(String str) { if (str == null || str.length() == 0) { ...
阅读(40) 评论(0)

剑指offer---ugly number

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 解题思路:使用heap的方式进行排序处理,然后分别从其中向外取出数据。 java import java.util.HashSet; import java.util.PriorityQueue; import j...
阅读(31) 评论(0)

LeetCode 179. Largest Number

Given a list of non negative integers, arrange them such that they form the largest number. For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330. Note: The result may be ve...
阅读(17) 评论(0)

剑指offer — 把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 其中排序时,一定要使用Integer数组进行排序,int类型的不能使用 java import java.util.Arrays; import java.util.Comparator; import java.u...
阅读(21) 评论(0)
574条 共39页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:134053次
    • 积分:6596
    • 等级:
    • 排名:第3823名
    • 原创:533篇
    • 转载:36篇
    • 译文:5篇
    • 评论:52条
    最新评论