剑指offer
文章平均质量分 62
37度冬天
这个作者很懒,什么都没留下…
展开
-
剑指offer面试题8--数组旋转
//二分查找的sipublic 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 · 420 阅读 · 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 · 585 阅读 · 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 · 531 阅读 · 0 评论 -
剑指offer24--二叉树的后序遍历
//思想:输入一个数组,该数组转载 2014-10-31 09:58:13 · 488 阅读 · 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 · 404 阅读 · 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 · 392 阅读 · 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 · 443 阅读 · 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 · 454 阅读 · 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 · 580 阅读 · 0 评论 -
链表中倒数第k个结点
public class FindKthToTail {/** 输入一个链表,输出该链表的倒数第K个结点*/public ListNode findKthToTail(ListNode head,int k){if(head==null || kreturn null;ListNode resultListNode=null;ListNode poListNod转载 2014-10-27 10:02:43 · 422 阅读 · 0 评论 -
剑指offer--合并两个递增链表
//spublic 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 · 468 阅读 · 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 · 647 阅读 · 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 · 904 阅读 · 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 · 565 阅读 · 0 评论 -
剑指offer--面试题7两个栈实现队列
//思路,栈1添加元素,然后把栈1元素加入到栈2中,转载 2014-10-25 10:16:49 · 594 阅读 · 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 · 671 阅读 · 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 · 522 阅读 · 0 评论 -
剑指offer16--反转链表
//用三个引用指向xiayigepublic class ReverseList {/** 输入一个链表的头结点,翻转改链表并输出翻转后的头结点*/public ListNode reverseList(ListNode head){if(head==null)return null;ListNode preListNode=null;ListNode no转载 2014-10-27 10:29:24 · 556 阅读 · 0 评论 -
剑指offer--17树的子结构
public class DoesTree1HaveTree2 {/** 判断二叉树B是不是二叉树A的子树*/public boolean doesTree1HaveTree2(BinaryTreeNode root1,BinaryTreeNode root2){if(root2==null)//遍历到子树的叶子结点则证明是子树return true;elsei转载 2014-10-27 11:04:52 · 383 阅读 · 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 · 554 阅读 · 0 评论