<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[terry84fun的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/terry84fun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; terry84fun]]></copyright><item><title><![CDATA[旋转数组的最大小元素]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4972402</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4972402</guid><author>terry84fun</author><pubDate>Wed, 09 Dec 2009 16:09:00 +0800</pubDate><description><![CDATA[题目：把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。输入一个排好序的数组的一个旋转，输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转，该数组的最小值为1。       解题思路分析：这道题最直观的解法并不难。从头到尾遍历数组一次，就能找出最小的元素，时间复杂度显然是O(N)。但这个思路没有利用输入数组的特性，我]]></description><category></category></item><item><title><![CDATA[和为n连续正数序列]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4971912</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4971912</guid><author>terry84fun</author><pubDate>Wed, 09 Dec 2009 15:09:00 +0800</pubDate><description><![CDATA[题目：题目：输入一个正数n，输出所有和为n连续正数序列。例如输入15，由于1+2+3+4+5=4+5+6=7+8=15，所以输出3个连续序列1-5、4-6和7-8。  解题思路：我们用两个数small和big分别表示序列的最小值和最大值。首先把small初始化为1，big初始化为2。如果从small到big的序列的和大于n的话，我们向右移动small，相当于从序列中去掉较小的数字。]]></description><category></category></item><item><title><![CDATA[最近一些笔试面试题]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4937670</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4937670</guid><author>terry84fun</author><pubDate>Fri, 04 Dec 2009 08:14:00 +0800</pubDate><description><![CDATA[1.平时洗牌是两打牌，交叉洗在一起.也就是开始 1 2 3 4 5 6 7 8第一次 1 5 2 6 3 7 4 8第二次 1 3 5 7 2 4 6 8。。。第k次 ...给你一个数组a[2N]，要求在O(1)的空间复杂度内给a[2N]k次洗牌. 2.给定一个整型数n，求出跟n最接近的2的m次方，求出m的值。 3.给定一个数组（无序），例如Index ]]></description><category></category></item><item><title><![CDATA[判断两个数组是否完全一样（未完成）]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4849703</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4849703</guid><author>terry84fun</author><pubDate>Sat, 21 Nov 2009 23:25:00 +0800</pubDate><description><![CDATA[ 题目：数组AB都分别存放着N个不重复的整数, 乱序怎么判断AB里的数是否完全一样??时间复杂度要优于O(NlogN)空间复杂度在O(1)需要考虑溢出问题。]]></description><category></category></item><item><title><![CDATA[快速找到两个有序数组第（m+n）/2个元素]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4849700</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4849700</guid><author>terry84fun</author><pubDate>Sat, 21 Nov 2009 23:23:00 +0800</pubDate><description><![CDATA[ 题目：两个数组，分别按从小到大排列第一个数组，m个元素第二个数组，n个元素如何快速找到第(m+n)/2个元素？能否在O(lg（m+n））的时间复杂度内完成？ 解题思路：如果A[m/2] 如果       >       ，在A的前半段和B的后半段继续2分查找如果       =，返回]]></description><category></category></item><item><title><![CDATA[在排序数组中查找和为给定值的两个数字]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4841455</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4841455</guid><author>terry84fun</author><pubDate>Fri, 20 Nov 2009 14:12:00 +0800</pubDate><description><![CDATA[ 题目：输入一个已经按升序排序过的数组和一个数字，在数组中查找两个数，使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字，输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15，因此输出4和11。解题思路：最初我们找到数组的第一个数字和最后一个数字。当两个数字的和大于输入的数字时，把较大的数字往前移动；当两个]]></description><category></category></item><item><title><![CDATA[判断整数序列是不是二元查找树的后序遍历结果]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4840099</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4840099</guid><author>terry84fun</author><pubDate>Fri, 20 Nov 2009 10:54:00 +0800</pubDate><description><![CDATA[ 题目：输入一个整数数组，判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true，否则返回false。 例如输入5、7、6、9、11、10、8，由于这一整数序列是如下树的后序遍历结果：         8       /  /      6    10    / /    / /   5   7   9  11因此返回true。如果输入7、4、6、5，没有哪棵树的后序遍历]]></description><category></category></item><item><title><![CDATA[在二元树中找出和为某一值的所有路径-递归算法]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4839727</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4839727</guid><author>terry84fun</author><pubDate>Fri, 20 Nov 2009 10:03:00 +0800</pubDate><description><![CDATA[ 题目：输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树                                            10                                           /   /                   ]]></description><category></category></item><item><title><![CDATA[找出数组中两个只出现一次的数字--分组异或]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4835712</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4835712</guid><author>terry84fun</author><pubDate>Thu, 19 Nov 2009 15:49:00 +0800</pubDate><description><![CDATA[ 题目：一个整型数组里除了两个数字之外，其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n)，空间复杂度是O(1)。解题思路：这个题目的突破口在哪里？题目为什么要强调有一个数字出现一次，其他的出现两次？我们想到了异或运算的性质：任何一个数字异或它自己都等于0。也就是说，如果我们从头到尾依次异或数组中的每一个数字，那么最终的结果刚好是那个只出现依次的数]]></description><category></category></item><item><title><![CDATA[在字符串中删除特定的字符]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4835422</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4835422</guid><author>terry84fun</author><pubDate>Thu, 19 Nov 2009 15:20:00 +0800</pubDate><description><![CDATA[ 题目：输入两个字符串，从第一字符串中删除第二个字符串中所有的字符。例如，输入”They are students.”和”aeiou”，则删除之后的第一个字符串变成”Thy r stdnts.”。解题思路：（1）我们并不需要在每次删除一个字符的时候都去移动后面所有的字符。我们可以设想，当一个字符需要被删除的时候，我们把它所占的位置让它后面的字符来填补，也就相当于这个字符被删除了]]></description><category></category></item><item><title><![CDATA[第一个只出现一次的字符-hash解法]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4835184</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4835184</guid><author>terry84fun</author><pubDate>Thu, 19 Nov 2009 14:48:00 +0800</pubDate><description><![CDATA[ 题目：在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff，则输出b。解题思路：由于题目与字符出现的次数相关，我们是不是可以统计每个字符在该字符串中出现的次数？要达到这个目的，我们需要一个数据容器来存放每个字符的出现次数。在这个数据容器中可以根据字符来查找它出现的次数，也就是说这个容器的作用是把一个字符映射成一个数字。在常用的数据容器中，哈希表正是这个用途。哈希]]></description><category></category></item><item><title><![CDATA[寻找丑数]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4835006</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4835006</guid><author>terry84fun</author><pubDate>Thu, 19 Nov 2009 14:20:00 +0800</pubDate><description><![CDATA[ 2、3和5的数称作丑数（Ugly Number）。例如6、8都是丑数，但14不是，因为它包含因子7。题目：我们把只包含因子  习惯上我们把1当做是第一个丑数。解题思路： （1）根据丑数的定义，丑数应该是另一个丑数乘以2、3或者5的结果（1除外）。因此我们可以创建一个数组，里面的数字是排好序的丑数。里面的每一个丑数是前面的丑数乘以2、3或者5得到的。（2）这]]></description><category></category></item><item><title><![CDATA[两字符序列的最长公共字符子序列 ]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807774</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807774</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:58:00 +0800</pubDate><description><![CDATA[  求两字符序列的最长公共字符子序列 问题描述：字符序列的子序列是指从给定字符序列中随意地（不一定连续）去掉若干个字符（可能一个也不去掉）后所形成的字符序列。令给定的字符序列X=“x0，x1，…，xm-1”，序列Y=“y0，y1，…，yk-1”是X的子序列，存在X的一个严格递增下标序列，使得对所有的j=0，1，…，k-1，有xij=yj。例如，X=“ABCBDAB”，Y=“BCDB”是]]></description><category></category></item><item><title><![CDATA[数组中最长递增子序列-java]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807648</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807648</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:38:00 +0800</pubDate><description><![CDATA[ 求数组中最长递增子序列写一个时间复杂度尽可能低的程序，求一个一维数组（N个元素）中的最长递增子序列的长度。例如：在序列1，-1，2，-3，4，-5，6，-7中，其最长的递增子序列为1，2，4，6。 分析与解法       根据题目的要求，求一维数组中的最长递增子序列，也就是找一个标号的序列b[0],b[1],…,b[m](0  解法一]]></description><category></category></item><item><title><![CDATA[二叉排序树的建立-java]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807577</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807577</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:28:00 +0800</pubDate><description><![CDATA[ class Tree {	Tree left, right;	int item;	public Tree(Tree left, Tree right, int item) {			this.left = left;			this.right = right;			this.item = item;		}}public class BinSearchTree]]></description><category></category></item><item><title><![CDATA[比一个整数大的最小的质数-java]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807566</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807566</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:26:00 +0800</pubDate><description><![CDATA[/***比一个整数大的最小的质数***/ public static int getMiniPrim(int n)	{	n++;	int half=(int)Math.sqrt(n);	int i = 2;	for(;i	{		if(n%i==0)		return getMiniPrim(n++);	}	return n;	}]]></description><category></category></item><item><title><![CDATA[字符串反转-java]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807546</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807546</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:22:00 +0800</pubDate><description><![CDATA[/**将一个字符串反转：Hello world --> world Hello**/  //对一个char数组进行整体反转	public static void subReverse(char[] str, Integer begin, Integer end) {	char temp;	while (begin 		temp = str[begin];		]]></description><category></category></item><item><title><![CDATA[ 打印螺旋举矩阵-java]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807521</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807521</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:17:00 +0800</pubDate><description><![CDATA[ package algorithms;public class RingDemo {	/**	 * @param args	 * 打印螺旋举矩阵	 */	public static void setArray(int n) {	int intA = 1;//初始化	int[][] array = new int[n][n];	int int]]></description><category></category></item><item><title><![CDATA[求两个有序数组相同元素的个数-JAVA]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807510</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807510</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:15:00 +0800</pubDate><description><![CDATA[ /**	 * @param args	 *求两个有序数组相同元素的个数	 */	public static int commonLength(int[] a,int[] b)	{	int lenA=a.length;	int lenB=b.length;	int i=0,j=0;	int count=0;	while(i	{		if(a[i]==b]]></description><category></category></item><item><title><![CDATA[编辑距离算法-java]]></title><link>https://blog.youkuaiyun.com/terry84fun/article/details/4807472</link><guid>https://blog.youkuaiyun.com/terry84fun/article/details/4807472</guid><author>terry84fun</author><pubDate>Fri, 13 Nov 2009 15:09:00 +0800</pubDate><description><![CDATA[ public class LDistance {	// ****************************	// Get minimum of three values	// ****************************	private int Minimum(int a, int b, int c) {		int mi;		mi = a;		if ]]></description><category></category></item></channel></rss>