剑指Offer-左旋转字符串 发表于 2017-12-19 | 阅读次数 左旋转字符串 题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务, 就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S, 请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”, 要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单 ... 阅读全文 »
剑指Offer-数据流中的中位数 发表于 2017-12-19 | 阅读次数 数据流中的中位数 题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值, 那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值, 那么中位数就是所有数值排序之后中间两个数的平均值。思路 使用一个大根堆和一个小根堆来保存,分为两堆。代码 import java.uti ... 阅读全文 »
剑指Offer-二叉搜索树的第K个节点 发表于 2017-12-19 | 阅读次数 二叉搜索树的第K个节点 题目 给定一颗二叉搜索树,请找出其中的第k大的结点。 例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。思路 中序遍历代码 public class TreeNode { int val = 0; ... 阅读全文 »
剑指Offer-平衡二叉树 发表于 2017-12-19 | 阅读次数 平衡二叉树 题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路 算每一个子是不是平衡二叉树代码 public class IsBalanced_Solution { public class TreeNode { int val = 0; TreeNod ... 阅读全文 »
剑指Offer-二叉树的深度 发表于 2017-12-19 | 阅读次数 二叉树的深度 题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点) 形成树的一条路径,最长路径的长度为树的深度。思路 DFS 层次遍历代码 import java.util.LinkedList; import java.util.Queue; public clas ... 阅读全文 »
剑指Offer-不用加减乘除作加法 发表于 2017-12-19 | 阅读次数 不用加减乘除作加法 题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路 一位位用位运算代码 public class Add { public int add(int num1,int num2){ while (num2!=0){ ... 阅读全文 »
剑指Offer-求1+2+3+...+n 发表于 2017-12-19 | 阅读次数 求1+2+3+…+n 题目 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、 case等关键字及条件判断语句(A?B:C)。思路 幂指数方法 递归代码 public class Sum_Solution { public int Sum_So ... 阅读全文 »
剑指Offer-字符流中第一个不重复的字符 发表于 2017-12-19 | 阅读次数 字符流中第一个不重复的字符 题目 请实现一个函数用来找出字符流中第一个只出现一次的字符。 例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。 当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是&quo ... 阅读全文 »
剑指Offer-数字在排序数组中出现的次数 发表于 2017-12-19 | 阅读次数 数字在排序数组中出现的次数 题目 统计一个数字在排序数组中出现的次数。思路 1.遍历 2.根据二分找到第一个出现的位置和最后一个出现的额位置代码 public class Solution { public int GetNumberOfK(int [] array , int k) { ... 阅读全文 »
剑指Offer-数组中重复的数字 发表于 2017-12-18 | 阅读次数 数组中重复的数字 题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的, 但不知道有几个数字是重复的。也不知道每个数字重复几次。 请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3}, 那么对应的输出是第一个重复的数字2。思路 ... 阅读全文 »