剑指offer
versionwen
这个作者很懒,什么都没留下…
展开
-
数值的整数次方
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0题解:这个题我用了两种方式来解答,第一种比较狠,直接跑暴力,没啥技巧,直接把base乘以exponent次,但是要考虑到exponent为负数的情况,于是得到了我下面的代码,这种方式时间复杂度为o(n)public d...原创 2020-03-12 23:29:58 · 96 阅读 · 0 评论 -
二进制中1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题解:一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因...原创 2020-03-12 22:10:44 · 70 阅读 · 0 评论 -
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)
题解: 这个题的常规思路很简单,就是写出来斐波那契数的表达式然后直接进行递归处理斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)根据公式可以直接写出:public class Solution { public int Fibonacci(int n) { if(n==1){ ...原创 2020-03-05 22:10:02 · 6212 阅读 · 2 评论 -
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:/* 二叉树的镜像定义:** 源二叉树* 8* / \* 6 10* / \ / \* 5 7 9 11* 镜像二叉树* 8* / \* 10 6* / \ / \* 11 9 7 5* 解题思路* ...原创 2019-07-13 22:41:25 · 224 阅读 · 0 评论 -
从上往下打印出二叉树的每个节点
题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路:采用二叉树先序遍历的方法来遍历数据,用一个队列来存储遍历的数据,最后注意数据的出队列就行,要注意一个问题,我使用JAVA写的代码queue的初始化不能使用new的方式,因为queue是一个抽象的数据结构,没有办法进行实例化,所以必须采用其他方法进行实例化,我这里采用的是linklist进行实例化。相关解题代码...原创 2019-09-19 15:53:40 · 591 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路:二叉排序树后续遍历最后面那个数字一定是根节点,根据这个特性我们可以先找到左子树,左边的节点的数值应该都比根节点要小,右边的节点都要比根节点要大,直接进行递归就行,如果出现不符合该规律的序列,那么就直接结束二叉排序树解题代码:...原创 2019-09-19 16:19:38 · 75 阅读 · 0 评论 -
数组中出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解题思路:首先使用一个hashtable来存储数组中每一个数字出现的次数,然后遍历hashtable,找到那个出现次数超过一半的数字即可。解题代码:packa...原创 2019-09-24 08:56:19 · 84 阅读 · 0 评论 -
最小的K个数
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解题思路:先把数组进行排序,可以采用快排,时间复杂度为O(nlogn),然后直接输出排序后前面的4个就行解题代码:package com.offer;import java.util.ArrayList;import java.util.Ar...原创 2019-09-24 10:36:30 · 105 阅读 · 0 评论 -
第一个只出现一次的字符
题目描述:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1.解题思路:用一个hash表来存储出现次数,然后遍历hashtable就行。解题代码:import java.util.HashMap;public class Offer34 { public static in...原创 2019-09-28 11:17:57 · 71 阅读 · 0 评论