2017吉位元校招一個程式設計筆試題
阿新 • • 發佈:2019-02-04
題目:
給定一個未排序的數列,找到此數列在已排序狀態下的兩個相鄰值的最大差值,少於兩個值時返回0。例如:給定數列[1,3,2,0,1,6,8]則最大差值為3。
輸入描述:
第一行輸入單個整數N作為數列的大小,第二行輸入所有數列中的元素M,共N個。N在0到1000000之間,M在0到2100000000之間。
輸出描述:
數列的最大差值。
輸入例子:
3
1 10 5
輸出例子:
5
以下是程式碼(如果有什麼問題,還望諒解和指正):
function func(num,arr){
var result;
var newArr = [];
newArr = arr.sort(function (a,b){
return a-b;
});
if(arr.length<2){
result = 0;
return result;
}
if(arr.length != num){
alert("您輸入的數列大小與元素個數不符,請重新輸入!");
return ;
}else{
var zz = 0;//存放中間變數
result = newArr[1 ]-newArr[0];//初始賦值
for(var i=1;i<newArr.length;i++){
zz = newArr[i+1]-newArr[i];
if(zz>=result){
result = zz;
}
}
}
return result;
}
//測試資料
var x = [1,3,2,0,1,6,8];
var y = 0 ;
y = func(7,x);
console.log(y);