论坛首页 招聘求职论坛

一个公司的Java面试题

浏览 44452 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2010-05-26   最后修改:2010-05-26
给定一个int数组,写一个函数判断该数组中的所有数字是否能组成连续数字。如[1,3,4,6,2,5]能组成连续数字,【1,2,5,4,7】不能。数组中的数也可能重复

呵呵,我采用笨办法:先用一个循环找出数字中的最大值和最小值,然后从最小到最大值在数组中循环查找对应数字,只要有一个数没有找到,就返回false,如果都找到了,就返回true.
public boolean  isContinousArray(int[] intArr)
	{
		if(intArr==null) return false;
		if(intArr.length<2) return true;
		int maxInt=intArr[0],minInt=intArr[0];
		for(int i:intArr)
		{
			System.out.println(i);
			if(i>maxInt) maxInt=i;
			if(i<minInt) minInt=i;
		}
		for(int value=minInt;value<=maxInt;value++)
		{
			boolean found=false;
			for(int j:intArr)
			{
				if(j==value)
				{
					found=true;
					break;
				}
			}
			if(!found) return false;
		}
		return true;
	}


是不是还有更好的算法?
   发表时间:2010-05-26  
先排序,然后前一个数等于后一个数或者前一个数等于后一个数+1
0 请登录后投票
   发表时间:2010-05-26  
先一次循环数组array,拿到最大值m和最小值n。
然后看array的长度是不是m-n+1,不是就return false。
然后创建一个新数组bucket[m-n+1],
对于数组array中的每一个数x,令bucket[x-n]=1,
定义y =1
最后循环一遍bucket,y = y&bucket[i];如果y=0,return false
否则,return true。
2 请登录后投票
   发表时间:2010-05-26   最后修改:2010-05-26
也可以只取一个最小值。然后如此操作。
0 请登录后投票
   发表时间:2010-05-26  
kimmking 写道
先一次循环数组array,拿到最大值m和最小值n。
然后看array的长度是不是m-n+1,不是就return false。
然后创建一个新数组bucket[m-n+1],
对于数组array中的每一个数x,令bucket[x-n]=1,
定义y =1
最后循环一遍bucket,y = y&bucket[i];如果y=0,return false
否则,return true。

 

 我从这开始再将数组放入set,看set的size和数组的length

 再把数组的和算出来。。。。。

0 请登录后投票
   发表时间:2010-05-26  
创建一个数组String str = new String("0123456789");
将数字转换为字符串型,判断该字符串是否是str的子串,是则是连续数字,否则不是。
2 请登录后投票
   发表时间:2010-05-26  
max-min+1 == length
0 请登录后投票
   发表时间:2010-05-26  
第一排序
第二相加,相乘得出结果
也许效率高哦
0 请登录后投票
   发表时间:2010-05-26  
xgrass18 写道
先排序,然后前一个数等于后一个数或者前一个数等于后一个数+1

数字是允许重复的
0 请登录后投票
   发表时间:2010-05-26  
Checkmate 写道
kimmking 写道
先一次循环数组array,拿到最大值m和最小值n。
然后看array的长度是不是m-n+1,不是就return false。
然后创建一个新数组bucket[m-n+1],
对于数组array中的每一个数x,令bucket[x-n]=1,
定义y =1
最后循环一遍bucket,y = y&bucket[i];如果y=0,return false
否则,return true。

 

 我从这开始再将数组放入set,看set的size和数组的length

 再把数组的和算出来。。。。。


一定要注意:数字允许重复
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics