基于二分法 index1为首,index2为尾,indexMid指向中间 当Number[index1]大于等于Number[index2]的条件满足时  …
分类:剑指offer
位运算
输入一个整数,输出该数二进制表示中1的个数。附加题:判断一个数是否是2的幂。 一个整数数组里除了两个数字以外,其他数字都出现两次。请找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)。 写一个函数,求两个整…
【剑指offer】Java版代码(完整版)
###一、引言 《剑指offer》可谓是程序猿面试的神书了,在面试中帮了我很多,大部分面试的算法题都会遇到原题或者是类似的题。但是书上的代码都是C版的,我在这里整理了一份Java版的代码供大家学习参考,这些代码我都是在O…
剑指offer四十八之不用加减乘除做加法
一、题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 二、思路 1、 采用位运算的方法,分三步: (1)、两个数异或:相当于每一位相加,而不考虑进位 (2)、两个数相与,并…
剑指offer解题报告(Java版)——数组中只出现一次的数字 40
分析问题 任何一个数字异或它自己都等于0,通过这个思想遍历数组,用一个result累计异或操作,如果遇到某一个数两次,必定消除了异或操作,换句话说就是如果我们从头依…
剑指offer二十九之最小的K个数
一、题目 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 二、思路 详解代码。 三、代码 import java.util.ArrayL…
剑指offer十六之合并两个排序的链表
一、题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 二、思路 注:链表1和链表2是两个递增排序的链表,合并这两个链表得到升序链表为链表3. 首先分析合并两个…
剑指offer解题报告(Java版)——二叉树的深度 判断二叉树是否平衡 38
问题一 引言 在之前我们讲到过如果保存树根节点到叶子节点之间的路径,其中包含了如何判断一个节点是否是叶子节点,而且用栈保存了路径中的节点…
【剑指offer】11-20题
11.给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不得使用库函数,不需要考虑大数问题 思路:不能用==比较两个浮点数是否相等,因为有误差。考虑输入值的多种…
剑指Offer解题报告(Java版)——不用加减乘除做加法 47
引言 一般这种不能用四则运算的题都只有用位运算来做,目的是加强大家对计算机计算的理解,真是有点扯淡呢 解决问题  …
剑指offer九之变态跳台阶
一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二、思路 1、关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2…
剑指offer十五之反转链表
一、题目 输入一个链表,反转链表后,输出链表的所有元素。 二、思路 详细分析见代码注释 三、代码 public class Solution { &n…