* 如果乙個數列s滿足對於所有的合法的i,都有s[i + 1]
= s[i] + d, 這裡的d也可以是負數和零,我們就稱數列s為等差數列。
* 輸入包括兩行,第一行包含整數n(2 ≤ n ≤ 50),即數列的長度。
* 第二行n個元素x[i]
(0 ≤ x[i] ≤ 1000),即數列中的每個整數。
// 思路:其實很簡單,首先進行快速排序,然後如果存在重複的元素則不行
// 計算第乙個和第二個元素的差,然後乙個for迴圈,判斷乙個arr[i]+d=arr[i+1]是否成立就可以了
var len=readline(
)var arr=readline(
).split(
' ').map(number)
;// 快速排序
function kuaisu(arr)
} // 從左向右尋找大於該數的數
for(var j=left;j} if(
!has_change)
} var l_arr=arr.slice(0,flag)
var r_arr=arr.slice(flag+1)
if(l_arr.length>1)
if(r_arr.length>1)
return l_arr.concat(arr[flag]
).concat(r_arr)
}// 交換函式
function change(a,b)
arr=kuaisu(arr)
;var d=arr[1]-arr[0]
;var flag=false;
for(var i=0;i}if(
!flag)
演算法 等差數列
原理 如果乙個數列從第二項起,每一項與它的前一項的差等於同乙個常數,這個數列就叫做等差數列,這個常數叫做等差數列的公差,公差常用字母d表示。等差數列是常見數列的一種,如果乙個數列從第二項起,每一項與它的前一項的差等於同乙個常數,這個數列就叫做等差 數列,而這個常數叫做等差數列的公差,公差常用字母d表...
codevs等差數列
題目描述 description 給定n 1 n 100 個數,從中找出盡可能多的數使得他們能夠組成乙個等差數列.求最長的等差數列的長度.輸入描述 input description 第一行是乙個整數n,接下來一行包括了n個數,每個數的絕對值不超過10000000.輸出描述 output descr...
網易等差數列
如果乙個數列s滿足對於所有的合法的i,都有s i 1 s i d,這裡的d也可以是負數和零,我們就稱數列s為等差數列。小易現在有乙個長度為n的數列x,小易想把x變為乙個等差數列。小易允許在數列上做交換任意兩個位置的數值的操作,並且交換操作允許交換多次。但是有些數列通過交換還是不能變成等差數列,小易需...