![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
文章平均质量分 62
37度冬天
这个作者很懒,什么都没留下…
展开
-
剑指offer面试题8--数组旋转
//二分查找的si public Integer minInReversingList(int[] array) { if(array==null) return null; int leftIndex=0; int rightIndex=array.length-1; int mid=1; while(array[leftIndex]>=array[rightIndex]) {转载 2014-10-25 10:53:47 · 395 阅读 · 0 评论 -
剑指offer---圆圈中最后剩下的数字
import java.util.ArrayList; public class LastRemaining { /* 0,1...n-1这N个数字排成一个圆圈,从从数字0开始每次从这个圆圈里删除第M个数字. 求这个圈圈里剩下的最后一个数字 */ public int lastRemaining (int count,int m) { if(count转载 2014-11-13 21:37:46 · 558 阅读 · 0 评论 -
剑指offer---不能加减乘除做加法
public class Add { /* * 不能加减乘除做加法 */ public int add(int num1,int num2) { int sum=0,carry=0; do { sum=num1^num2; carry=(num1 & num2) << 1; num1=sum; num2=carry; } while (num2!转载 2014-11-13 22:12:43 · 505 阅读 · 0 评论 -
剑指offer24--二叉树的后序遍历
//思想:输入一个数组,该数组转载 2014-10-31 09:58:13 · 460 阅读 · 0 评论 -
剑指offer28--字符串的排列
public class AllSort{ public static void main(String[] args) { char buf[]={'a','b','c'}; perm(buf,0,buf.length-1); } public static void perm(char[] buf,i转载 2014-10-25 22:48:48 · 377 阅读 · 0 评论 -
剑指offer29--数组中出现超过一半的数字
public class MoreThanHalfNum { /* * 数组中有一个数字出现的次数超过数组长度的一般,求这个数字 */ public Integer moreThanHalfNum(int[] array) { if(array==null) return null; Integer number=null; int count=0; Integer resul转载 2014-11-03 11:03:19 · 374 阅读 · 0 评论 -
快速排序
/* * 快速排序 */ public class QuickSort { /** * 划分数组 */ public static int partition(long arr[],int left, int right,long point) { int leftPtr = left - 1; int rightPtr = right; while(true) {原创 2014-11-03 14:22:51 · 420 阅读 · 0 评论 -
剑指offer22--栈的压入弹出序列
public class IsPopOrder { /* * 输入两个整数序列,第一个序列表示压入顺序,判断第二个序列是否为弹出顺序.假设入栈所有数字均不相等 */ public boolean isPopOrder(int[] line1,int[] line2) { if(line1==null || line2==null) return false; int point1=转载 2014-11-02 11:20:58 · 425 阅读 · 0 评论 -
剑指offer31--连续子数组的最大和
public class FindGreatestSum { /* * 连续子数组的最大和 */ public Integer findGreatestSum(int[] array) { if(array==null) return null; int greatest=0; int curSum=0; for(int i=0;i { if(curSum+array[i]转载 2014-11-04 12:54:58 · 558 阅读 · 0 评论 -
链表中倒数第k个结点
public class FindKthToTail { /* * 输入一个链表,输出该链表的倒数第K个结点 */ public ListNode findKthToTail(ListNode head,int k) { if(head==null || k return null; ListNode resultListNode=null; ListNode poListNod转载 2014-10-27 10:02:43 · 393 阅读 · 0 评论 -
剑指offer--合并两个递增链表
//s public class Merge { /* * 输入两个递增的链表,合并这两个链表并使新链表仍然是递增的 */ public ListNode merge(ListNode root1,ListNode root2) { if(root1==null) return root2; else if(root2==null) return root1; ListN转载 2014-10-27 10:42:27 · 440 阅读 · 0 评论 -
剑指offer39---二叉树的深度
public class treePath { /* * 1.输入根节点求树的深度 */ public int treePath(BinaryTreeNode root) { if(root==null) return 0; int left=treePath(root.lefNode); int right=treePath(root.rightNode);转载 2014-11-10 16:32:18 · 623 阅读 · 0 评论 -
剑指offer---和为s的两个数字VS和为s的连续正数序列
public class FindNumbersWithSum { /* * 问题1:输入一个递增排序的数组和一个数字s.在数组中查找两个数使他们的和为s,如果有多对数字的和等于s,输出一对即可 */ public void findNumbersWithSum(int[] sortedArray, int number) { if(sortedArray==null) r转载 2014-11-10 15:58:44 · 876 阅读 · 0 评论 -
剑指offer面试题6--重建二叉树
public class ConstructCore { /* 输入二叉树的前序遍历和中序遍历结果,重建二叉树并输出头节点 ex:12473568,47215386 */ public BinaryTreeNode constructCore(int[] preorder,int[] inorder) throws Exception { // System.out.println(转载 2014-10-25 10:05:50 · 540 阅读 · 0 评论 -
剑指offer--面试题7两个栈实现队列
//思路,栈1添加元素,然后把栈1元素加入到栈2中,转载 2014-10-25 10:16:49 · 572 阅读 · 0 评论 -
剑指offer--翻转单词VS左转字符串
package Problem42; public class ReverseSentence { /* * 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变 */ public void reverseSentence(String sentence) { if(sentence==null) return ; String sentenceRever转载 2014-11-10 16:27:39 · 641 阅读 · 0 评论 -
剑指offer--单链表O(1)删除节点
public class DeleteNode { /* * 给定单向链表的头指针和一个节点,定义一个函数在O(1)时间删除该节点 */ public void deleteNode(ListNode head,ListNode deListNode) { if(deListNode==null || head==null)//链表为空 return ; if(head==de转载 2014-10-25 23:17:18 · 495 阅读 · 0 评论 -
剑指offer16--反转链表
//用三个引用指向xiayige public class ReverseList { /* * 输入一个链表的头结点,翻转改链表并输出翻转后的头结点 */ public ListNode reverseList(ListNode head) { if(head==null) return null; ListNode preListNode=null; ListNode no转载 2014-10-27 10:29:24 · 531 阅读 · 0 评论 -
剑指offer--17树的子结构
public class DoesTree1HaveTree2 { /* * 判断二叉树B是不是二叉树A的子树 */ public boolean doesTree1HaveTree2(BinaryTreeNode root1,BinaryTreeNode root2) { if(root2==null)//遍历到子树的叶子结点则证明是子树 return true; else i转载 2014-10-27 11:04:52 · 355 阅读 · 0 评论 -
剑指offer23--从上往下打印二叉树
public class PrintFromTopToBottom { public void printFromTopToBottom(BinaryTreeNode root) { if(root!=null) return ; Queue> queue=new LinkedList>(); queue.add(root); while(!queue.isEmpty()) {转载 2014-11-02 11:31:26 · 529 阅读 · 0 评论