排序:
默认
按更新时间
按访问量
RSS订阅

剑指offer--和为S的连续正数序列

描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快...

2018-03-17 16:10:08

阅读数 49

评论数 0

剑指offer--平衡二叉树

描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 代码 根据平衡二叉树的定义,我们可以根据求二叉树深度的算法,后序遍历求出左右子树的深度差,并做出判断 public class Solution { private boolean isBalanced=true; pu...

2018-03-16 20:11:04

阅读数 46

评论数 0

剑指offer--两个链表的第一个公共结点

描述 输入两个链表,找出它们的第一个公共结点。 代码 思路:分别计算两个链表的长度,然后可以区分哪个链表更长,并且求出俩链表的长度差delta。然后先遍历长链表,让长链表先走delta步,接下来,两个链表同时遍历,直到两个引用指向同一个对象,返回该节点。 /* public class L...

2018-03-15 17:47:26

阅读数 49

评论数 0

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

描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50...

2018-03-15 14:59:53

阅读数 40

评论数 0

剑指offer--整数中1出现的次数(从1到n整数中1出现的次数)

描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。代码这道题在...

2018-03-13 16:25:24

阅读数 45

评论数 0

剑指offer--二叉搜索树与双向链表

描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 代码 经过二叉排序树的中序遍历。 /** public class TreeNode { int val = 0; TreeNode left = nu...

2018-03-11 16:19:02

阅读数 43

评论数 0

剑指offer--复杂链表的复制

描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 代码 /* public class RandomListNode {...

2018-03-11 12:20:41

阅读数 41

评论数 0

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

描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 代码 根据后序遍历的特点,可以确定数组的最后一个元素是头结点,随后,根据二叉搜索树,左子树的节点小于头结点,右子树的节点大于头结点,可以遍历数组,...

2018-03-10 22:41:28

阅读数 43

评论数 0

剑指offer--栈的压入、弹出序列

描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是...

2018-03-09 19:43:13

阅读数 45

评论数 0

剑指offer--包含min函数的栈

描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 代码 定义两个栈s1,s2。s1是自然栈,也就是正常的压栈和出栈,而s2是保存当前最小值的栈,当有一个元素压栈时,首先比较s2的栈顶元素和该元素的大小,如果该元素小于s2的栈顶元素,则向s2压栈(更新一下最小值)。...

2018-03-09 11:51:13

阅读数 63

评论数 0

剑指offer--顺时针打印矩阵

描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 代码 import ja...

2018-03-09 11:31:47

阅读数 46

评论数 0

剑指offer--二叉树的镜像

描述 操作给定的二叉树,将其变换为源二叉树的镜像。 代码 使用递归的话,就是首先交换根节点的左右孩子节点的指针,随后再分别交换左右节点下的孩子节点。 /** public class TreeNode { int val = 0; TreeNode left = null;...

2018-03-08 20:10:43

阅读数 38

评论数 0

剑指offer--反转链表

描述 输入一个链表,反转链表后,输出链表的所有元素。 代码 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; ...

2018-03-08 10:38:46

阅读数 46

评论数 0

剑指offer--链表中倒数第k个结点

描述 输入一个链表,输出该链表中倒数第k个结点。 代码 本题可以设置slow和fast两个指针,首先分别指向head。然后slow不动,让fast指针向右移动k-1次。随后同时移动fast和slow,直到fast指向了最后一个节点,此时返回slow。 /* public class Lis...

2018-03-07 22:15:47

阅读数 42

评论数 0

变态跳台阶

变态跳台阶描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。代码public class Solution { public int JumpFloorII(int target) { if(target==1...

2018-02-18 22:21:54

阅读数 51

评论数 0

跳台阶

描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。代码当有1级台阶的时候,由题意可知,只有一种方法。2级台阶的时候,一种是跳两次,每次上一级,另一种是跳一次,上两级。3级台阶的时候,跳法一共应该有f(1)+f(2)种。依次类推,n级台阶就有f(n-1)+...

2018-02-18 21:58:30

阅读数 41

评论数 0

用两个栈实现队列

描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer&g...

2018-02-14 21:09:54

阅读数 64

评论数 0

重建二叉树

描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 代码 其中(start-inS)表示根据前序...

2018-02-13 16:23:38

阅读数 56

评论数 0

2.替换空格

描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 代码 public class Solution { public String replaceSpace(Str...

2018-02-13 11:17:24

阅读数 64

评论数 0

1.二维数组中的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码由于该二维数组的行是从左到右递增,列是从下到上递减,因此为了找到某整数,可以先从左下的位置开始找,如果数组中的值大于ta...

2018-02-13 10:50:17

阅读数 51

评论数 0

提示
确定要删除当前文章?
取消 删除