剑指offer
JYZzz.
这个作者很懒,什么都没留下…
展开
-
整数二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。使用语言JAVA,整数类型 4字节 32位右移法:负数比较32次 整数最大位所在位置次,最多31 //实现思路: //右移法:将运算数每位都与1进行位与,如果结果为1,则表示该位为1 //使用右移法 public int NumberOf1(int n) { int numberOfOne=0;//记录1...转载 2019-02-21 13:32:09 · 257 阅读 · 0 评论 -
剑指offer:数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。常规思路我们定义一个链表,然后循环遍历数组,发现链表中有当前遍历的值,就移除;没有就添加,在保证有两个不同数字的情况下,最后链表中肯定会剩下两个数字,就是结果了。实现很简单。 public void FindNumsAppearOnce(int [] array,int num1[] , in...原创 2019-03-01 11:10:35 · 124 阅读 · 0 评论 -
剑指offer:转置链表
import java.util.ArrayList;public class Solution { public static void main(String[] args) { //ReverseList Test Solution sol=new Solution(); ListNode node1=new ListNode(1); ListNode node2...原创 2019-02-19 21:03:56 · 143 阅读 · 0 评论 -
剑指offer:查找转置数组中的最小值
public class Solution {/* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。*/ public static void main(Strin...原创 2019-02-19 20:58:14 · 96 阅读 · 0 评论 -
剑指offer:使用两个栈实现队列
import java.util.Stack;public class Solution { /* * 用两个栈实现一个队列的基本思想为:将其中一个栈在入队列时负责处理入队元素,另一个出队时负责处理出队元素 * 当元素入队时,将其放入入队中, * 当元素出队时,判断出队栈是否为空,为空则将所有入栈元素弹出到出栈中,然后弹出一个出栈元素 * 若出栈不为空,直接弹出一个元素 *...原创 2019-02-19 19:20:05 · 108 阅读 · 0 评论 -
剑指offer:数组中的逆序对
           在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。    &转载 2019-02-28 20:19:17 · 263 阅读 · 0 评论 -
剑指offer:二叉搜索树合法后序遍历序列检测
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Solution { public static void main(String[] args) { int[] sequence= {12,14,13,10}; System.out.print(new Soluti...原创 2019-02-24 14:26:29 · 125 阅读 · 0 评论 -
剑指offer:栈的压入弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) import java.util.Stack; public class Solu...原创 2019-02-23 14:35:07 · 134 阅读 · 0 评论 -
剑指offer:顺时针打印矩阵
//输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字//例如,如果输入如下4 X 4矩阵: 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 java.util.ArrayList;public class Solution { publi...原创 2019-02-23 11:21:42 · 92 阅读 · 0 评论 -
剑指offer:二叉树镜像
public void Mirror(TreeNode root) { //节点为null时 返回 也是递归结束的出口 if(root==null) { return; } //镜像过程自底向上进行 Mirror(root.left);//将左子树进行镜像 Mirror(root.right); ...原创 2019-02-22 21:09:03 · 89 阅读 · 0 评论 -
剑指offer:子树判断
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构public class Solution { /***************************** * 判断树B是否是树A的子结构 * @param root1 树A * @param root2 树B * @return 树A是否是树B的子结构 */ public b...原创 2019-02-22 13:37:47 · 262 阅读 · 0 评论 -
剑指offer:重建二叉树
import java.util.Arrays;/*输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。*//************ * 关于先序遍历和中序遍历 * 先 、中 都是对于根节点来说的 ...转载 2019-02-19 19:22:25 · 391 阅读 · 0 评论 -
剑指offer:合并连个有序链表
还是直接上代码public class Solution { /*********************** * 合并两个链表 毫无疑问 要对两个链表进行遍历 * @param list1 链表1 * @param list2 链表2 * @return 返回合并后链表的头结点 */ public ListNode Merge(ListNode list1,Lis...原创 2019-02-22 11:11:53 · 116 阅读 · 0 评论 -
剑指offer:奇数在前,偶数在后
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Solution { public static void main(String[] args) { int[] testArray= {1,4,3,5,7,6,9}; // new Solu...原创 2019-02-21 20:54:37 · 142 阅读 · 0 评论 -
剑指offer:复杂链表的复制
输入一个复杂链表,返回结果为复制后复杂链表的headPS:每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)import java.util.HashMap;/*输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制...原创 2019-02-25 17:26:40 · 87 阅读 · 0 评论