剑指offer
yesIcando-bupt
stay hungry stay foolish
展开
-
链表倒序输出三种算法
输入一个链表,从尾到头打印链表每个节点的值。一共有三种方法,第一种方法为我自己的方法,另外两种参考其他人的,分别为利用栈和利用递归。/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */第原创 2017-03-03 22:19:23 · 829 阅读 · 0 评论 -
寻找最小生成树的欧拉路径,即一笔画问题
【程序背景】最近在做子图匹配的实验,对查询图需要进行预处理,得到最小生成树,然后进行后续的子图匹配工作,由于匹配过程是按照顺序依次遍历匹配的,当时程序就卡在寻找一条顺序相连的最小生成树的欧拉路径问题上了,查了很多关于欧拉路径的解决方案,觉得过于复杂,干脆最后自己写了一个小程序,解决了。【问题说明】输入list:(2,6)(1,3)(1,2)(4,5)(1,4)得到newlist:(转载 2017-04-26 09:19:10 · 1019 阅读 · 0 评论 -
MergeSort与QuickSort
快排public class QuickSortTest { private int array[]; private int length; public void sort(int[] inputArr) { if (inputArr == null || inputArr.length == 0) {原创 2017-05-08 10:34:42 · 321 阅读 · 0 评论 -
剑指Offer面试题43(Java版):n个骰子的点数
剑指Offer面试题43(Java版):n个骰子的点数题目:把n个骰子仍在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能的值出现的概率。n个骰子朝上的数之和为s,求s的所有可能以及概率 分析问题 如果是用笨方法,一般人最开始都会想到笨方法,那就是枚举法 举个例子,比转载 2017-05-03 11:36:50 · 1200 阅读 · 0 评论 -
刷题
1在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。两种思路:一种是:把每一行看成有序递增的数组,利用二分查找,通过遍历每一行得到答案,时间复杂度是nlognpublic class Solution { public boolean Find(int [][]原创 2017-03-14 20:39:43 · 337 阅读 · 0 评论 -
B是不是A的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/*思路:参考剑指offer1、首先设置标志位result = false,因为一旦匹配成功result就设为true,剩下的代码不会执行,如果匹配不成功,默认返回false2、递归思想,如果根节点相同则递归调用DoesTree1HaveTree2(),如果根节点不相同,则判断tree原创 2017-03-09 19:41:38 · 217 阅读 · 0 评论 -
反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。public ListNode ReverseList(ListNode head) {if(head==null) return null; //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null; ListNode pre = nu原创 2017-03-09 09:28:06 · 200 阅读 · 0 评论 -
java实现冒泡、选择、快速排序算法
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先原创 2017-03-05 12:21:13 · 377 阅读 · 0 评论 -
剑指offer算法 java实现 二维数组中的查找
剑指offer算法 java实现题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上往下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该函数。例如下面的二维数组就是每行、每列都是递增排序。如果在这个数组中查找数字7,则返回true,如果查找数组5,由于数组中不含有该数字,则返回false。1 2 8 9原创 2017-03-02 09:51:47 · 292 阅读 · 0 评论 -
3.输入一个链表,从尾到头打印链表每个节点的值。
12345678910111213141516171819202122232425262728/*** public class ListNode原创 2017-03-05 11:55:31 · 240 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类
import java.util.Stack; public class Solution { Stack stack1 = newStack(); Stack stack2 = newStack(); public void push(int node) { stack1.push(node); }原创 2017-03-05 11:52:53 · 240 阅读 · 0 评论 -
两个栈实现一个队列和两个队列实现一个栈
两个栈实现一个队列import java.util.Stack;public class Demo07 { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) { stack1.push(node); } pu原创 2017-08-23 15:11:02 · 487 阅读 · 0 评论