前端演算法 等差數列(快速排序)

2021-10-04 12:31:29 字數 893 閱讀 3126

* 如果乙個數列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變為乙個等差數列。小易允許在數列上做交換任意兩個位置的數值的操作,並且交換操作允許交換多次。但是有些數列通過交換還是不能變成等差數列,小易需...