原題目是求乙個無序陣列中最長的等差數列。
求隨機數構成的陣列中找到長度大於=3 的最長的等差數列, 輸出等差數列由小到大:
如果沒有符合條件的就輸出
格式:輸入[1,3,0,5,-1,6]
輸出[-1,1,3,5]
思路:1、排序
2、d的取值範圍是[0,max-min],共有max-min+1種情況
3、對每一種情況進行查詢
4、對於公差d,要求最長的等差序列,需要兩個迴圈,乙個外迴圈從頭到尾遍歷,內迴圈從外迴圈的起始遍歷點開始利用公式 arr[i]=arr[start]+len*d,假如符合就長度加1假如大於就跳出迴圈。
publicstatic
void getprogressarray(int array ,int
d)
}else
if(array[i]>(array[startindex]+d*plen))}}
int arr=new
int[maxlen];
for(int i=0;i)
system.out.println(arrays.tostring(arr));
}
求兩有序陣列的中位數
給定兩個大小為 m 和 n 的正序 從小到大 陣列nums1和nums2 找出並返回這兩個正序陣列的中位數 時間複雜度o log m n 解法 二分法查詢 public class main int nums2 system.out.println mid solution.method nums1...
尋找有序陣列的反轉陣列中最小的元素
尋找有序陣列的反轉陣列中最小的元素 1.利用二分查詢法查詢。設定兩個指標,分別指向陣列的第乙個p1和最後乙個元素p2。2.得到陣列中間位置的元素,將這個元素與第乙個元素比較,如果大於第一元素,證明這個最小的數字在這個中間元素的後面,此時將p1指向中間元素的下乙個位置 如果中間元素小於第乙個元素,那麼...
華為機試 求兩個數之間的素數
c c xy 03.求兩個數之間的素數 題目描述 給2個數,求這兩個數字之間的素數個數,並將素數的個數返回,將求出的素數輸出至pout中。對於如下函式即求 pinput 0 pinput 1 之間的素數,將得到的素數輸出至pout中,返回素數的個數。認為只能夠被1和它本身整除的數字是素數。int v...