題目描述
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 的方法。但是,很多...