
int nums[] =
{
3, 1, 3, 6, 4, 2
};

scanIndexNumber(nums);


nums = new int[]
{
3, 6
};

scanIndexNumber(nums);

/** *//**
*掃描連續數(先驗證重復,后驗證連續數)
*/

public void scanIndexNumber(int[] nums)
{
//判斷重復數和有效數組長度
if (!isNumberOnlyOne(nums) || nums.length == 1)
System.out.println("數據不合法!");

else
{

//返回數組中的最大值和最小值
int[] MinAndMax = scanArrayNumberMinAndMax(nums);

//最小值
int min = MinAndMax[0];

//最大值
int max = MinAndMax[1];


//原始數組的長度
int argsArrayLen = nums.length;

checkIndexNumber(argsArrayLen, min, max);
}
System.out.println();
}




/** *//**
*求出數組中的最小和最大值,返回的結果是一個數組。第一個數是最小值,第二個是最大值。
*/

public int[] scanArrayNumberMinAndMax(int[] nums)
{
//最小值
int min = nums[0];

//最大值
int max = nums[0];


for (int num: nums)
{
//求最大值
if (min > num)
min = num;

//求最大值
if (max < num)
max = num;
}


int[] result = new int[]
{
min, max
};

return result;
}


/** *//**
*驗證是否有重復數
*/

public boolean isNumberOnlyOne(int[] nums)
{
//消除重復數據
Set < Integer > s = new HashSet < Integer > ();


for (int num: nums)
{
s.add(num);
}

//原始數組的長度
int argsArrayLen = nums.length;

//不重復的數組個數
int arrayLen = s.size();

return argsArrayLen == arrayLen;
}


/** *//**
*驗證連續數
*/

public void checkIndexNumber(int argsArrayLen, int min, int max)
{

//理論上的連續數的總數
int numLen = max - min + 1;

//判斷是否為連續數

if (argsArrayLen == numLen)
{
System.out.println("數組的個數= " + argsArrayLen);
System.out.println("理論上的連續數的總數= " + numLen);
System.out.println("Bing Go!");
}
else
System.out.println("非連續數!");
}