
剑指Offer
咸鱼塘塘主
我只是不想我的未来黯淡无光
展开
-
剑指Offer-Java-数组中重复的数字
题目 此题有好几种解法 1.时间复杂度为O(n),空间复杂度为O(n),利用临时数组 2.时间复杂度为O(n),会改变数组原来的结构 3.时间复杂度为O(nlogn),空间复杂度为O(1),不会改变原来的数组第一种解法 /** * 查找(1-n)数组中相同的数 * @param a */ public static void se...原创 2018-06-05 20:05:19 · 278 阅读 · 0 评论 -
剑指Offer-Java-二进制中1的个数
题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。代码正确的使用与运算和移位运算符即可即可使得其一直向移,统计1的个数即可public class Solution { public int NumberOf1(int n) { int a = n; int num=0; while(a!=0){ ...原创 2018-10-01 22:51:59 · 248 阅读 · 0 评论 -
剑指Offer-Java-序列化二叉树
题目请实现两个函数,分别用来序列化和反序列化二叉树代码此题的核心点是如何表示二叉树,并且解释。/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = ...原创 2018-10-01 22:46:41 · 626 阅读 · 0 评论 -
剑指Offer-Java-把二叉树打印成多行
题目从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。代码此处只需要一个队列进行层序遍历即可。import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(i...原创 2018-10-01 22:38:14 · 279 阅读 · 0 评论 -
剑指Offer-Java-数值的整数次方
题目给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方代码题目本身不难,主要是要考虑到各种情况public class Solution { public double Power(double base, int exponent) { double result = 1; ...原创 2018-09-05 17:00:32 · 202 阅读 · 0 评论 -
剑指Offer-Java-二进制中1的个数
题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。代码public class Solution { public int NumberOf1(int n) { int a = n; int num=0; while(a!=0){ if((a&1)==1){ ...原创 2018-09-05 16:30:13 · 129 阅读 · 0 评论 -
剑指Offer-Java-矩形覆盖
题目我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?代码可以将问题理解成 当1*2的格子的时候只有一种可能 当2*2的格子时候有两种可能 当3*2的时候取决于第一个怎么放,当第一次摆放一块 2*1 的小矩阵,则摆放方法总共为f(target - 1)当第一次摆放一块1*2的小矩阵,则摆放方法总共为...原创 2018-09-05 16:13:55 · 223 阅读 · 0 评论 -
剑指Offer-Java-重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码/** * Definition for binary tree * public class TreeNode { * ...原创 2018-08-30 16:06:29 · 157 阅读 · 0 评论 -
剑指Offer-Java-旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。代码只需要理解旋转数组的规律即可import java.util.ArrayList;public...原创 2018-08-30 22:21:24 · 153 阅读 · 0 评论 -
剑指Offer-Java-用两个栈实现队列
题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码只需要来回倒就可以实现了。import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integ...原创 2018-08-30 16:50:36 · 185 阅读 · 0 评论 -
剑指Offer-Java-二叉树的镜像
题目题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2018-09-27 17:04:54 · 207 阅读 · 0 评论