- /**
- *给定一个int数组,写一个函数判断该数组中的所有数字是否能组成连续数字。
- *如[1,3,4,6,2,5]能组成连续数字,【1,2,5,4,7】不能。数组中的数也可能重复.
- *
- *@authorAdministrator2010-5-29
- */
- publicstaticbooleanisContinousArray1(int[]intArr){
- if(intArr==null)
- returnfalse;
- if(intArr.length<2)
- returntrue;
- intmaxInt=intArr[0],minInt=intArr[0];
- for(inti:intArr){
- if(i>maxInt)
- maxInt=i;
- if(i<minInt)
- minInt=i;
- }
- for(intvalue=minInt;value<=maxInt;value++){
- booleanfound=false;
- for(intj:intArr){
- if(j==value){
- found=true;
- break;
- }
- }
- if(!found)
- returnfalse;
- }
- returntrue;
- }
- publicstaticvoidisContinousArray2(int[]arr){
- Map<Integer,Integer>map=newTreeMap<Integer,Integer>();
- for(inti:arr){
- map.put(i,(i-1));
- }
- booleanfirstIsNull=true;
- for(inti:map.keySet()){
- if(map.get(map.get(i))!=null){
- System.out.println("能组成连续数字.");
- continue;
- }elseif(firstIsNull){
- firstIsNull=false;
- }else{
- System.out.println("不能组成连续数字.");
- break;
- }
- }
- }
面试考到的一个问题
最新推荐文章于 2025-12-19 21:59:06 发布
本文介绍了一种判断整型数组中的元素是否能构成连续数字序列的方法,并提供了两种不同的实现方式。第一种方法通过遍历寻找最大最小值并验证每个可能的数值是否存在;第二种方法尝试利用映射来检查元素之间的连续性。
176万+

被折叠的 条评论
为什么被折叠?



