尋找最長的等差數列

2021-08-16 04:07:58 字數 959 閱讀 8678

題目描述 

description

給定n(1<=n<=100)個數,從中找出盡可能多的數使得他們能夠組成乙個等差數列.求最長的等差數列的長度.

輸入描述 

input description

第一行是乙個整數n,接下來一行包括了n個數,每個數的絕對值不超過10000000.

輸出描述 

output description

對於每個輸入資料,輸出你所找出的最長等差數列的長度

樣例輸入 

sample input 73

8456

22樣例輸出 

sample output

5

#include #define m 100

void swap(int *a,int *b);

void sort(int *num,int begin,int end); //快速排序

int search(int *num,int n); //搜尋最長等差數列

int main(void)

; scanf("%d",&n);

for(i=0;ilength) break;

if(num[m]-num[k]==length)

m++;

}if(count>max) max = count; //對比最大值

} }return max;

}void swap(int *a,int *b)

//快速排序

void sort(int *num,int begin,int end)

else i++;

} if(num[i]>=num[begin]) i--;

swap(num+i,num+begin);

sort(num,begin,i);

sort(num,j,end);

}}

尋找最長的等差數列

問題描述 給定乙個大小為n的陣列,要求寫出乙個演算法,求出其最長的等差數列的子串行。首先問題並沒有要求要按照原來陣列的順序,所以可以先對該陣列排序。如果不要求該最長子序列中的元素是相鄰的話,可以用乙個簡單的dp來完成。令 f i j 表示以 i 為結尾的某子串行 該子串行的等差為 j 的最大長度 那...

最長等差數列 找數字 及最長等差數列分析

今日面試題 找數字 陣列a中,除了某乙個數字x之外,其他數字都出現了三次,而x出現了一次。請給出最快的方法,找到x。最長等差數列分析 原題給定未排序的陣列,請給出方法找到最長的等差數列。分析題目描述比較簡單,但是有乙個問題我們需要首先搞清楚 等差數列中的數字,是否要和原始陣列中的順序一致。題目中,並...

最長等差數列 最長等差數列 及子串行分析

今日面試題 最長等差數列 給定未排序的陣列,請給出方法找到最長的等差數列。子串行分析 原題給定長度為n的整數數列 a0,a1,an 1,以及整數s。這個數列會有連續的子串行的整數總和大於s的,求這些數列中,最小的長度。分析如果只是像題目這樣的描述,沒有強調正數,可以採用o n 2 的方法。但是,很多...