自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (4)
  • 收藏
  • 关注

原创 剑指offer 平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。public boolean IsBalanced_Solution(TreeNode root) { if (root == null) { return true; } int left = TreeDepth(root.left); int right

2016-04-28 09:25:08 343

原创 剑指offer 二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/** * 只有左子树,depth=左子树深度+1 * 只有右子树,depth=右子树深度+1 * 有左右子树,depth=max(左子树深度,右子树深度)+1 * * @param pRoot * @return

2016-04-28 09:07:39 304

原创 剑指offer 数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。public int getFisrtK(int[] arr, int k, int start, int end) { if (start > end) { return -1; } int mid = (end + start) / 2; int x = arr[m

2016-04-27 11:08:21 289

原创 剑指offer 两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。/** * 遍历两个链表得到它们的长度 * 第二次遍历,在较长的链表上先走若干步,接着同时在两个链表上遍历 * @param pHead1 * @param pHead2 * @return */ public ListNode FindFirstCommonNode(ListNode

2016-04-27 10:14:47 346

原创 剑指offer 连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?public in

2016-04-26 10:48:51 288

原创 剑指offer 最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { if (input == null || input.length ==0) {

2016-04-26 10:12:46 290

原创 剑指offer 数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

2016-04-25 14:01:02 261

原创 二叉排序树

#include <stdio.h>#include <stdlib.h>//二叉排序树结点typedef struct BSTreeNode { int val; struct BSTreeNode *lchild; struct BSTreeNode *rchild;} BSTreeNode, *BSTree;BSTree insert(BSTree root, in

2016-04-24 14:33:26 417

原创 二叉树遍历

#include <stdio.h>#include <stdlib.h>//二叉树结点typedef struct BiTreeNode{ int val; struct BiTreeNode *lchild; struct BiTreeNode *rchild;}BiTreeNode, *BiTree;//按先序序列构造二叉树void createBiTree(B

2016-04-24 00:53:49 475

原创 归并排序

归并排序算法思想将已有序的子序列合并,得到完全有序的序列;设两个有序的子序列放在同一向量中相邻的位置上:a[low..m],a[m+1..high],先将它们合并到一个局部的暂存向量 a1中,待合并完成后将 a1 复制回 a[low..high]中。归并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1;否则将第二个有序

2016-04-22 21:46:52 438

原创 剑指offer 二叉树中和为某一值的路径

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。ArrayList<ArrayList<Integer>> results = new ArrayList<>(); public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int t

2016-04-20 14:18:56 334

原创 剑指offer 二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public boolean VerifySquenceOfBST(int[] sequence) { return getResult(sequence,sequence.length); } public boolean

2016-04-20 11:09:19 293

原创 剑指offer 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。/** * 每打印一个结点的时候,如果该结点有子结点,则把该子结点放到队列的末尾. * @param root * @return */ public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { Array

2016-04-19 18:56:27 368

原创 剑指offer 栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 /** * 如果下一个弹出的数字刚好是栈顶数字,直接弹出. * 如果下一个弹出的数字不在栈顶,把压栈序列中还

2016-04-19 10:36:58 308

原创 剑指offer 包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。/** * 辅助栈保存(当前压入栈)最小值 * 压人x,如果x小于辅助栈顶元素,则压人x,否则压人辅助栈顶元素 * 使得当前栈顶一直保存当前栈的最小值 */public class Solution { Stack<Integer> stack = new Stack<>(); Stack<Int

2016-04-19 09:37:51 280

原创 剑指offer 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10

2016-04-18 15:06:36 288

原创 剑指offer 树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class

2016-04-18 13:34:10 383

原创 剑指offer 链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。public ListNode FindKthToTail(ListNode head,int k) { if (head == null || k == 0) { return null; } ListNode p1 = head; ListNode p2 =

2016-04-16 13:10:29 296

原创 剑指offer 数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。/** * a^n ={a^(n/2) * a^(n/2),n为偶数;a^(n/2) * a^(n/2) * a} * * @param base * @param exponent * @return */ pub

2016-04-15 12:30:51 361

原创 剑指offer 二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。/** * 把整数n和(n-1)作&运算,会把整数n最右边的1变成0 * @param n * @return */ public int NumberOf1(int n) { int count = 0; while (n!=0) {

2016-04-14 20:57:42 265

原创 剑指offer 矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?/** * 2*n大矩形,2*1小矩形覆盖左边有2种选择 * 横着放左上角,左下角必须横着放,右边剩余2*()n-2 * 竖着放左边,右边剩余2*(n-1) * f(n) = f(n-1) + f(n-2) * @p

2016-04-14 12:47:02 522

原创 京东 上台阶

题目描述有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。 给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。 测试样例: 3 返回:2/** * 第n阶,有两种跳法,从n-1跳上来,或者从n-2跳上来 * f(n)=f(n-1)

2016-04-14 12:29:02 1069

原创 剑指offer 跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。/** * 第n阶,有两种跳法,从n-1跳上来,或者从n-2跳上来 * f(n)=f(n-1)+f(n-2) * f(1) = 1; * f(2) = 2; * * @param target * @return */

2016-04-14 12:18:44 441

原创 剑指offer 斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 public int Fibonacci(int n) { if (n == 0) { return 0; } if (n == 1 || n == 2) { return 1; } i

2016-04-14 10:54:31 734

原创 剑指offer 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。public int minNumberInRotateArray(int [] array) { if (array == null || array.length ==

2016-04-14 10:31:26 306

原创 剑指offer 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node)

2016-04-13 19:39:59 288

原创 剑指offer 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 public TreeNode reConstructBinaryTree(int[] pre, int[] in) { if (pre

2016-04-13 18:51:11 356

原创 剑指offer 从尾到头打印链表

题目描述输入一个链表,从尾到头打印链表每个节点的值。 输入描述: 输入为链表的表头输出描述: 输出为需要打印的“新链表”的表头 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> res = new ArrayList<>(); if

2016-04-13 12:37:01 296

原创 剑指offer 二维数组中的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入描述: array: 待查找的二维数组 target:查找的数字输出描述: 查找到返回true,查找不到返回false/** * 二维数组中的查找 * 选取数组右上角的数组x * x

2016-04-13 11:41:03 346

原创 搜狐 扎金花

题目描述两个搜狐的程序员加了一个月班,终于放假了,于是他们决定扎金花渡过愉快的假期 。游戏规则: 共52张普通牌,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张; 每人抓三张牌。两人比较手中三张牌大小,大的人获胜。 对于牌型的规则如下: 1.三张牌一样即为豹子 2.三张牌相连为顺子(A23不算顺子) 3.有且仅有两张牌一样为对子 豹子>顺子>对子>普通

2016-04-12 19:21:17 1309 2

原创 网易 二叉树

有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。 给定二叉树的根节点root,请返回所求距离。/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode

2016-04-12 15:11:04 801

原创 网易 比较重量

小明陪小红去看钻石,他们从一堆钻石中随机抽取两颗并比较她们的重量。这些钻石的重量各不相同。在他们们比较了一段时间后,它们看中了两颗钻石g1和g2。现在请你根据之前比较的信息判断这两颗钻石的哪颗更重。 给定两颗钻石的编号g1,g2,编号从1开始,同时给定关系数组vector,其中元素为一些二元组,第一个元素为一次比较中较重的钻石的编号,第二个元素为较轻的钻石的编号。最后给定之前的比较次数n。请返回这

2016-04-12 14:00:27 826

原创 美团 直方图内最大矩形

题目描述有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。 给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。 测试样例: [2,7,9,4,1],5 返回:14public int countAre

2016-04-12 10:18:52 845

原创 去哪儿 文本嗅探

题目描述现在有一个字符串列表,和一个关键词列表,请设计一个高效算法,检测出含关键字列表中关键字(一个或多个)的字符串。 给定字符串数组A及它的大小n以及关键词数组key及它的大小m,请返回一个排好序的含关键词的字符串序号的列表。保证所有字符串长度小于等于100,关键词个数小于等于100,字符串个数小于等于200。保证所有字符串全部由小写英文字符组成。若不存在含关键字的字符串,请返回一个只含-1的数

2016-04-11 21:09:33 790

原创 去哪儿 乘坐公交

题目描述从小明家所在公交站出发有n路公交到公司,现给出每路公交的停站数(不包括起点和终点),及每次停的时间(一路车在每个站停的时间相同)和发车的间隔,先假定每辆车同时在相对时间0分开始发车,且所有车在相邻两个站之间的耗时相同,都为5分钟。给定小明起床的相对时间(相对0的分钟数),请计算他最早到达公司的相对时间。 给定每路车的停站数stops,停站时间period,发车间隔interval及公交路数

2016-04-11 20:34:07 610

原创 搜狐 发奖金

狐进行了一次黑客马拉松大赛,全公司一共分为了N个组,每组一个房间排成一排开始比赛,比赛结束后没有公布成绩,但是每个组能够看到自己相邻的两个组里比自己成绩低的组的成绩,比赛结束之后要发奖金,以1w为单位,每个组都至少会发1w的奖金,另外,如果一个组发现自己的奖金没有高于比自己成绩低的组发的奖金,就会不满意,作为比赛的组织方,根据成绩计算出至少需要发多少奖金才能让所有的组满意。 输入描述:每组数据先输入

2016-04-11 19:40:31 956

原创 美团 棋子翻转

题目描述在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。 给定两个数组A和f,分别为初始棋盘和翻转位置。其中翻转位置共有3个。请返回翻转后的棋盘。 测试样例: [[0,0,1,1],[1,0,1,0],[0,1,1,0],[0

2016-04-11 17:03:54 674

原创 百度 蘑菇阵

题目描述现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?输入描述: 第一行N,M,K(2 ≤ N

2016-04-11 15:43:10 714

原创 百度 钓鱼比赛

题目描述ss请cc来家里钓鱼,鱼塘可划分为n*m的格子,每个格子每分钟有不同的概率钓上鱼,cc一直在坐标(x,y)的格子钓鱼,而ss每分钟随机钓一个格子。问t分钟后他们谁至少钓到一条鱼的概率大?为多少?输入描述: 第一行五个整数n,m,x,y,t(1≤n,m,t≤1000,1≤x≤n,1≤y≤m); 接下来为一个n*m的矩阵,每行m个一位小数,共n行,第i行第j个数代表坐标为(i,j)的格子钓到

2016-04-11 00:34:42 871

原创 微软 LUCKY STRING

题目描述A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Given a string consisting of only lower case letters , output all its lucky non-empty substrings in

2016-04-10 19:08:35 1134

仿WIN8磁帖效果的ImageView

一个仿WIN8磁帖效果的ImageView

2014-07-29

Android例子源码使用ActionBar的高仿微信主界面设计

Android例子源码使用ActionBar的高仿微信主界面设计.

2014-07-29

操作系统实验 线程同步机制

实现Nachos的同步机制:锁和条件变量,并利用这些同步机制实现几个基础工具类

2013-07-13

计算机端口TCPIP详细介绍

TCPIP...............................................................................................

2011-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除