自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

转载 java——网络编程详

健全的霍金找工作阶段整理的面试题(一)socket通讯一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用

2017-05-31 21:10:19 262

原创 基本算法——快速排序

每次将传入的该段的第一个节点保存,依次从尾开始找到一个比该保存的数小的,然后放到第一个节点处,然后从头往后找比保存数大的,然后放到上一个节点处。依次进行。直到头和尾指针相遇,表示前面都是比保存的数小的,后面都是比保存的数大的。而该位置就是保存数的位置。然后依次递归。则可以了public void quickSort(int[]array,int left,int right)

2017-05-30 11:53:32 162

原创 程序员面试金典——奇偶位交换__(位运算)

题目描述请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)给定一个int x,请返回交换后的数int。测试样例:10返回:5思路://提取一个数的奇数位:x&0x55555555;奇数位全置1,偶数位全置0//提取一个数的偶数位:x&0xAAAAAAAA;奇数位全置0,偶数位全置1//互换位置:提取奇偶位后移动一下,

2017-05-30 11:25:29 392

转载 java——io处理大文件

Java读写大文本文件(2GB以上)如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n':package kddcup2012.task2.FileSystem; import java.io.BufferedInputStream; import

2017-05-29 11:43:07 4172

原创 程序员面试金典——整数转化__(位运算)

题目描述编写一个函数,确定需要改变几个位,才能将整数A转变成整数B。给定两个整数int A,int B。请返回需要改变的数位个数。测试样例:10,5返回:4思路:改变几位就是算它们之间不同的位的个数。用异或(相同位为1,不同位为0),然后算异或后的数 里面有多少个1.import java.util.*;public class Transf

2017-05-29 11:09:33 271

原创 程序员面试金典——输出单层结点

题目描述对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。思路:用层次遍历,用size控制每层的数量。每次dep--

2017-05-28 21:20:22 205

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

题目描述统计一个数字在排序数组中出现的次数。思路:看到顺序就用二分查找。public class Solution { public int GetNumberOfK(int [] array , int k) { int left = 0; int right = array.length-1; ret

2017-05-28 20:33:29 456

原创 程序员面试金典——集合栈_

题目描述请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。给定一个操作序列int[][2] ope(C++为vector>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的数字;若为2,则为pop操作,后一个数无意义。请返回一个i

2017-05-28 20:19:09 239

原创 程序员面试金典——二进制小数_(位运算)

题目描述有一个介于0和1之间的实数,类型为double,返回它的二进制表示。如果该数字无法精确地用32位以内的二进制表示,返回“Error”。给定一个double num,表示0到1的实数,请返回一个string,代表该数的二进制表示或者“Error”。测试样例:0.625返回:0.101import java.util.*;public

2017-05-28 19:35:24 483

原创 剑指offer——树的子结构_

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)注意下面这种情况: B树的左子节点2下面无,而A数中的2仍有,所以判定的时候 要注意是B子节点为空就是true。/**public class TreeNode { int val = 0; TreeNode left = null; Tr

2017-05-28 19:23:08 222

原创 程序员面试金典——堆箱子____

题目描述有一堆箱子,每个箱子宽为wi,长为di,高为hi,现在需要将箱子都堆起来,而且为了使堆起来的箱子不到,上面的箱子的宽度和长度必须小于下面的箱子。请实现一个方法,求出能堆出的最高的高度,这里的高度即堆起来的所有箱子的高度之和。给定三个int数组w,l,h,分别表示每个箱子宽、长和高,同时给定箱子的数目n。请返回能堆成的最高的高度。保证n小于等于500。测试样例:[

2017-05-28 13:55:28 802

原创 剑指offer——调整数组顺序使奇数位于偶数之前

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路1:优解法要想保证原有次序,则只能顺次移动或相邻交换。 * 2.i从左向右遍历,找到第一个偶数。 * 3.j从i+1开始向后找,直到找到第一个奇数。

2017-05-28 13:39:17 203

原创 剑指offer——合并两个排序的链表__

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:建立一个 虚头结点,跟他的一个追踪指针p。每次判定两个链表,将较小值放入。/*public class ListNode { int val; ListNode next = null; ListNode(int val) {

2017-05-28 12:52:28 192

原创 剑指offer——反转链表

题目描述输入一个链表,反转链表后,输出链表的所有元素。思路:构造一个虚头结点,用尾插法依次将结点插入。最后返回虚头结点的下一个结点。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/

2017-05-28 11:00:10 242

原创 程序员面试金典——链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。代码思路如下:两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。。倒数第k个结点,就是正数第n-k个结点。first先走到第k个结点处,那么剩下的就是n-

2017-05-27 20:23:34 265

原创 程序员面试金典——链式A+B

题目描述有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。测试样例:{1,2,3},{3,2,1}返回:{4,4,4}依次从a,b处开始累加,每次加的结果有进位放

2017-05-27 17:30:24 221

原创 程序员面试金典——最大连续数列和___

题目描述对于一个有正有负的整数数组,请找出总和最大的连续数列。给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。测试样例:[1,2,3,-6,1]返回:6思路:动态规划法        时间复杂度:O(N)        终于到了动态规划的部分了,这么一步一步

2017-05-27 17:26:41 293

原创 剑指offer——二叉树的下一个节点___

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:首先知道中序遍历的规则是:左根右,然后作图结合图,我们可发现分成两大类:1、有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G) 2、没有右子树的,也可以分成两类,a)是父节点左孩子(eg:

2017-05-26 22:10:53 200

原创 程序员面试金典——下一个较大元素

题目描述现在我们有一个int数组,请你找出数组中每个元素的下一个比它大的元素。给定一个int数组A及数组的大小n,请返回一个int数组,代表每个元素比他大的下一个元素,若不存在则为-1。保证数组中元素均为正整数。测试样例:[11,13,10,5,12,21,3],7返回:[13,21,12,12,21,-1,-1]思路:从后向前维护一个递减栈

2017-05-26 21:48:24 369

原创 程序员面试金典——最小调整有序___

题目描述有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的起点和终点。(原序列位置从0开始标号,若原序列有序,返回[0,0])。保证A中元素均为正整数。测试样例:[1,4,6,5,9,10],6

2017-05-25 20:20:53 252

原创 程序员面试金典——阶乘尾零

题目描述请设计一个算法,计算n的阶乘有多少个尾随零。给定一个int n,请返回n的阶乘的尾零个数。保证n为正整数。测试样例:5返回:1思路:有多少个0,就是计算有几对5和2的乘积。由于2的数量始终比5大,那么最后只要数出5的个数就可以。直接求 N=(n/5)+(n/25)+...+(n/(5^i))  (i=1,....直到5^i>N)

2017-05-25 19:57:55 239

原创 程序员面试金典——数组中的逆序对___

题目描述有一组数,对于其中任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对。请设计一个高效的算法,计算给定数组中的逆序对个数。给定一个int数组A和它的大小n,请返回A中的逆序对个数。保证n小于等于5000。测试样例:[1,2,3,4,5,6,7,0],8返回:7思路: 数组的逆序对就是求————(当前数组长度

2017-05-25 19:44:54 280

原创 剑指offer——把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。关键注意使用队列的size方法来控制层数。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/*public class TreeNode { int val = 0; Tre

2017-05-25 10:43:05 143

原创 程序员面试金典——珠玑妙算

题目描述我们现在有四个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,可能的情况为RGGB(槽1为红色,槽2、3为绿色,槽4为蓝色),作为玩家,你需要试图猜出颜色的组合。比如,你可能猜YRGB。要是你猜对了某个槽的颜色,则算一次“猜中”。要是只是猜对了颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜中”。给定两个string

2017-05-25 10:13:24 1031

原创 程序员面试金典——维护x的秩___

题目描述现在我们要读入一串数,同时要求在读入每个数的时候算出它的秩,即在当前数组中小于等于它的数的个数(不包括它自身),请设计一个高效的数据结构和算法来实现这个功能。给定一个int数组A,同时给定它的大小n,请返回一个int数组,元素为每次加入的数的秩。保证数组大小小于等于5000。测试样例:[1,2,3,4,5,6,7],7返回:[0,1,2,3,4,5,6]

2017-05-25 10:08:57 241

原创 程序员面试金典——叠罗汉1_____dp经典案例s

题目描述叠罗汉是一个著名的游戏,游戏中一个人要站在另一个人的肩膀上。同时我们应该让下面的人比上面的人更高一点。已知参加游戏的每个人的身高,请编写代码计算通过选择参与游戏的人,我们多能叠多少个人。注意这里的人都是先后到的,意味着参加游戏的人的先后顺序与原序列中的顺序应该一致。给定一个int数组men,代表依次来的每个人的身高。同时给定总人数n,请返回最多能叠的人数。保证n小于等于

2017-05-21 19:07:57 1360

原创 剑指offer——把字符串转换成整数

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0输入例子:+2147483647 1a33输出例子:2147483647 0public clas

2017-05-21 16:16:49 252

原创 程序员面试金典——元素查找_____

题目描述有一个排过序的数组,包含n个整数,但是这个数组向左进行了一定长度的移位,例如,原数组为[1,2,3,4,5,6],向左移位5个位置即变成了[6,1,2,3,4,5],现在对于移位后的数组,需要查找某个元素的位置。请设计一个复杂度为log级别的算法完成这个任务。给定一个int数组A,为移位后的数组,同时给定数组大小n和需要查找的元素的值x,请返回x的位置(位置从零开始)。

2017-05-20 21:31:27 298

原创 程序员面试金典——洪水

题目描述在一个nxm矩阵形状的城市里爆发了洪水,洪水从(0,0)的格子流到这个城市,在这个矩阵中有的格子有一些建筑,洪水只能在没有建筑的格子流动。请返回洪水流到(n - 1,m - 1)的最早时间(洪水只能从一个格子流到其相邻的格子且洪水单位时间能从一个格子流到相邻格子)。给定一个矩阵map表示城市,其中map[i][j]表示坐标为(i,j)的格子,值为1代表该格子有建筑,0代

2017-05-20 20:34:47 494

原创 剑指offer——丑数

题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路:取出的数一定是最小的,新的数 一定是比原队列中的所有数都要大的。因为min一直在增大,然后min乘上的对应的数 也一直在增大,永远比队列中前面的值都要大。import ja

2017-05-19 20:13:48 164

原创 构建qt项目后使用vs打开

在项目目录里,打开命令行,然后找到一个qt的qmake拖入到 命令行窗口里,然后输入-project然后输入 -tp vc test1.pro 每次对新增了QT的类文件 都要重复这样的工作。

2017-05-19 19:27:34 3567

原创 剑指offer——把数组排成最小的数_____

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:将所有的数放入集合中,关键是重写比较的方法,将两个数放一块,比较它们的前后关系。按照可以生成比较小的字符串的规则放。import java.util.ArrayList;imp

2017-05-18 20:11:05 150

原创 程序员面试金典——回文链表

题目描述请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:false思路:用字符串把链表的值全部统计,然后反转字符串,比较反转的字符串与原字符串是否值相等。import java.util.*

2017-05-18 11:07:57 193

原创 剑指offer——变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:用迭代的方式,n=从1到n-1的所有方法之和并加上直接到n的这一种。n(1)=1.就可以解出。public class Solution { public int JumpFloorII(int target) {

2017-05-18 11:00:55 125

原创 程序员面试金典——矩阵元素查找

题目描述有一个NxM的整数矩阵,矩阵的行和列都是从小到大有序的。请设计一个高效的查找算法,查找矩阵中元素x的位置。给定一个int有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,请返回一个二元数组,代表该元素的行号和列号(均从零开始)。保证元素互异。测试样例:[[1,2,3],[4,5,6]],2,3,6返回:[1,2]思路:最佳答案:没有之

2017-05-17 19:24:25 271

原创 剑指offer——替换空格

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { return str.toString().rep

2017-05-16 15:18:16 139

原创 程序员面试金典——找出字符串

题目描述有一个排过序的字符串数组,但是其中有插入了一些空字符串,请设计一个算法,找出给定字符串的位置。算法的查找部分的复杂度应该为log级别。给定一个string数组str,同时给定数组大小n和需要查找的string x,请返回该串的位置(位置从零开始)。测试样例:["a","b","","c","","d"],6,"c"返回:3思路:

2017-05-16 14:59:43 221

原创 剑指offer——对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right =

2017-05-15 21:29:39 178

原创 程序员面试金典——硬币表示___

题目描述有数量不限的硬币,币值为25分、10分、5分和1分,请编写代码计算n分有几种表示法。给定一个int n,请返回n分有几种表示法。保证n小于等于100000,为了防止溢出,请将答案Mod 1000000007。测试样例:6返回:2思路:我们用dp[i](i属于1~n ) 表示组合成i元一共有几种方法。首先所有的硬币组合问题都

2017-05-14 16:44:47 317

原创 剑指offer——二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int

2017-05-14 16:13:08 128

SSH项目搭建环境

SSH项目搭建环境

2017-04-04

空空如也

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

TA关注的人

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