- 博客(17)
- 资源 (4)
- 收藏
- 关注
原创 剑指Offer——二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6
2017-07-30 17:24:41 183
原创 剑指Offer——树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 树节点定义如下:public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val =
2017-07-30 16:22:42 212
原创 剑指Offer——合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 链表节点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}解题思路递归public class So
2017-07-30 16:08:34 248
原创 剑指Offer——反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。 其中,链表节点定义为:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}解题思路用栈借助前后指针,逐个反转借助临时头结点,原头结点之后的节点不断移动到临时
2017-07-30 15:51:29 245
原创 剑指Offer——链表中倒数第K个节点
题目描述输入一个链表,输出该链表中倒数第k个结点。 链表节点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}解题思路使用快慢指针使用栈使用快慢指针的程序如下:public class Solutio
2017-07-29 17:49:44 182
原创 剑指Offer——调整数组顺序使奇数位于偶数前面
问题描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路首先想到的是冒泡,把奇数往前面冒,偶数往下沉,奇偶相遇则交换程序如下:public class Solution { public void reOrderArray(int [] array) {
2017-07-29 17:36:02 158
原创 剑指Offer——数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路exponent为负数,结果取倒数从二进制的角度看211可以表示为21011=21000∗210∗212^{11} 可以表示为 2^{1011}=2^{1000}*2^{10}* 2^{1}那么程序如下public class Solution { publi
2017-07-29 17:26:38 189
原创 剑指offer——二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路>>>移位运算符的使用public class Solution { public int NumberOf1(int n) { int count = 0; while(n != 0){ if((n&1) == 1)count++;
2017-07-03 22:10:52 182
原创 剑指Offer--跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析当n=1,只有一种跳法当n=2,有两种跳法否则,青蛙跳到第n级台阶之前,可以从第n-1级和第n-2级跳过去,所以f(n)=f(n-1)+f(n-2),这个问题变成了斐波那契问题public class Solution { public int JumpFloor(int targe
2017-07-03 17:59:50 230
原创 剑指Offer--两个栈实现一个队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路两个栈,stack1用于入队,stack2用于出队。 当出队时发现stack2为空,把stack1中的元素依次弹出并压入stack2中import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Sta
2017-07-01 17:04:55 330
原创 剑指Offer--重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 二叉树节点定义:public class TreeNode { int val; TreeNode left;
2017-07-01 16:40:14 268
原创 二叉树的遍历
定义二叉树节点class TreeNode{ int val; TreeNode left; TreeNode right; public TreeNode(int val){ this.val = val; }}1. 前序遍历递归非常简单,代码如下:public void preTraversal(TreeNode root){
2017-06-30 01:18:15 153
原创 剑指offer--从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。 节点定义:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}思路一利用栈,先入后出import java.util.*;
2017-06-29 21:30:51 205
原创 剑指Offer--替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路一新建一个StringBuffer,一个个往里挪,遇到空格替换为%20思路二统计空格数目,计算新的长度,从后往前操作StringBuffer,不需要额外的空间,减少挪动次数:/*** StringBuffer能重新设置length
2017-06-29 20:50:29 347 1
原创 剑指Offer -- 二维数组中的查找
二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组array和一个整数target,判断数组中是否含有该整数。思路一根据二维数组自上而下、从左到右递增的规律,选取右上角或左下角作为与target比较的起点。 以右上角元素array[row][col]为例: 当target<array[row]
2017-06-13 15:27:51 273
原创 Self Crossing
You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metres to the north, then x[1] metres to the west, x[2] metres to the south,x[3] metres to the east and so
2016-02-25 23:14:08 570
原创 扫描一个目录下的所有文件
void getDirList(File file){if(file.isDirectory()){//是否是一个目录文件String[] dirList = file.list();for(int i=0; iFile item = new File(file.getAbsolutePath()+File.separator+dirList[i]);System.out.pr
2015-09-09 19:38:15 521
基于SSE4和多核编程的电子相册的实现
2016-04-10
Java/Matlab灰度图像的直方图均衡化、图像分割
2015-11-02
灰度图像的空间滤波和频率域滤波
2015-11-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人