剑指Offer - 数组中出现次数超过一半的数字(Java实现)

题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路分析: 方法1:借助HashMap,将数字以及出现次数依次存入Ma...

2018-12-09 22:29:01

阅读数:7

评论数:0

剑指Offer - 字符串的排列(Java实现)

题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路分析: 本题考察的是回溯法的思想。 代码实现如下: import java.util.ArrayLi...

2018-12-06 22:44:34

阅读数:4

评论数:0

剑指Offer - 二叉搜索树与双向链表(Java实现)

题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路分析: 二叉搜索树(BST)有一个很关键的结论就是:中序遍历的结果是非递减(递增)序列。而本题要求将BST转换成排序的双向链表,核心就是考察二叉树的非递归中序遍历...

2018-12-05 21:34:58

阅读数:12

评论数:0

剑指Offer - 复杂链表的复制(Java语言实现)

题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路分析: 方法1,借助HashMap。 遍历链表,依次...

2018-12-02 00:23:43

阅读数:30

评论数:0

剑指Offer- 二叉搜索树的后序遍历序列(Java实现)

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路分析: BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成...

2018-11-29 23:54:26

阅读数:12

评论数:0

剑指Offer - 栈的压入、弹出序列(Java实现)

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

2018-11-27 23:13:24

阅读数:6

评论数:0

剑指Offer - 树的子结构(JAVA实现)

题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路分析: 如果两个树中任意一棵树为空,则返回false; 判断A树中是否包含B树,且头结点相同,如果包含则返回true,如果不包含则遍历A树的左右两个子树,并将结果返回。所以本题需要调用递...

2018-11-25 19:00:51

阅读数:11

评论数:0

剑指Offer - 合并两个排序的链表(java语言实现)

题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路分析: 其实本题的思路和归并排序时的合并两个数组类似,只不过这里合并两个链表不需要占用额外的空间。 1,先判断两个链表是否都为空,并返回null。 2,判断两个链表其中是否有一个是空链...

2018-11-25 13:06:58

阅读数:16

评论数:0

剑指Offer - 链表中倒数第k个结点(JAVA实现)

题目描述: 输入一个链表,输出该链表中倒数第k个结点。 思路分析: 先需要遍历一遍链表确定链表的长度,判断k值是否超出链表长度,以及k值是否合理。 当k值处于合理的范围时,我们可以定义两个指针,第一个指针先走(k-1)步,第二个指针再从头结点出发,当第一个指针指向链表的末尾节点时,第二个指...

2018-11-23 15:39:19

阅读数:13

评论数:0

剑指offer - 调整数组顺序使奇数位于偶数前面(java语言实现)

题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路分析: 本题的核心是排序结果的稳定性,所以优先想到冒泡排序以及归并排序的思想。 归并排序的思想就是将数组分为...

2018-11-23 14:50:33

阅读数:11

评论数:0

剑指offer -矩形覆盖(java实现)

题目描述: 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路分析: 其实这题就是跳台阶的变种题,其核心还是斐波那契数列。 如上图所示: 当n=1时,只有一种方式。 当n=2时,存在2种摆放方式。 当n&...

2018-11-22 20:26:25

阅读数:7

评论数:0

剑指offer - 重建二叉树

题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路分析: 要重建一个二叉树,必须...

2018-11-20 20:52:00

阅读数:8

评论数:0

剑指offer - 从尾到头打印链表(JAVA语言实现)

题目描述: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 分析: 其实就是如何将链表从尾到头到尾放入链表集合的问题。可以借助栈但是会增加额外的空间复杂度O(N),所以从节省空间复杂度层次来说,原地逆转链表然后再将逆转后的链表从表头依次放入list集合中即可。该方法所需的空间复杂...

2018-11-20 20:17:17

阅读数:13

评论数:0

LeetCode - 98. 验证二叉搜索树

给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / 1 3 输出: true 示例 2: 输入: 5 / ...

2018-11-19 23:31:33

阅读数:7

评论数:0

LeetCode 92 -反转链表ii

题目描述: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2...

2018-11-12 21:40:58

阅读数:8

评论数:0

判断一个链表是否为回文结构-java描述

题意描述: 给定一个链表的头节点head,请判断该链表是否为回文结构。 例如: 1->2->1,返回true。 1->2->2->1,返回true。15->6-&am...

2018-11-07 23:29:15

阅读数:13

评论数:0

“之”字形打印矩阵-JAVA实现

题目描述: 给定一个矩阵matrix,按照“之”字形的方式打印这 个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 “之”字形打印的结果为:1,2,5,9,6,3,4,7,10,11,8,12 分析: 本体需要利用两个变量来记录起始点的位置,一个...

2018-11-07 22:32:38

阅读数:968

评论数:3

转圈打印矩阵-java语言实现

描述:给定一个整型矩阵matrix,请按照转圈的方式打印它。 例如: 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 分析:要想表达一个二维数组中...

2018-11-06 18:01:02

阅读数:11

评论数:0

用数组结构实现大小固定的队列和栈-java实现

1,用数组实现大小固定的栈 栈的特点是先进后出,所以用数组实现栈时,只需要利用一个指针判定数据存储的位置即可,添加元素时判断指针是否超过数组长度,如果没有越界将元素添加到指针所指的位置,并将指针向右移位一格;否则返回异常,显示栈空间已满。删除元素思路类似,判断指针是否为数组初始位置,不是则将指针所...

2018-11-06 15:36:25

阅读数:9

评论数:0

21天刷题计划之18.1—balanced-binary-tree(平衡二叉树)(Java语言描述)

平衡二叉树的描述: 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 代码实现如下: public boole...

2018-10-23 11:34:06

阅读数:21

评论数:0

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