}//拓展左端點,從最右端開始,比最小點大的都要納入排序範圍,因為最小點一定要排到最左邊 2,3,7,4,1,5,6
for(
int i = length -
1; i >=
0; i--
) result[0]
= p;
result[1]
= q;
}void
decre_sort
(int a)
//對incre_sort略微改動即可
for(
int i = length -
1; i >=
0; i--
) result[2]
= p;
result[3]
= q;
}int
main()
return0;
}
需要排序的最短子陣列的長度
演算法描述 1.從左往右找 當前值比max小 的一系列情況 初始 max arr 0 如果當前元素比max大,max就等於當前元素 如果當前元素比max小,max不變,然後繼續往後找,直到最後一次出現 當前值比max小 的情形,記下此時的下標為k。2.從右往左找 當前值比min大 的一系列情況 初始...
演算法 需要排序的最短子陣列長度
給定乙個無序陣列,求出需要排序的最短子陣列的長度。例如 arr 返回4,因為只有 5,3,4,2 需要排序。解決這個問題可以在時間複雜度為o n 額外空間複雜度為o 1 完成。初始化變數nominindex 1,從右向左遍歷,便利的過程記錄右側出現過的數的最小值,記為min。假設當前數為arr i ...
演算法題 重新排序的最短子陣列
給定乙個無序陣列nums,求出需要重新排序的最短子陣列 相似題 尋找陣列中元素nums ii 使得nums ii 大於左側所有的值,小於等於右側的值 思想 1.建立乙個乙個陣列right 2.後續遍歷陣列,right i 儲存從ii 1 size 1最小值 3.從左向右遍歷,定義乙個leftmax,...