1241 特殊的排序
乙個陣列的元素為1至n的整數,現在要對這個陣列進行排序,在排序時只能將元素放在陣列的頭部或尾部,問至少需要移動多少個數字,才能完成整個排序過程?
例如:2 5 3 4 1 將1移到頭部 =>
1 2 5 3 4 將5移到尾部 =>
1 2 3 4 5 這樣就排好了,移動了2個元素。
給出乙個1-n的排列,輸出完成排序所需的最少移動次數。
輸入第1行:1個數n(2 <= n <= 50000)。
第2 - n + 1行:每行1個數,對應排列中的元素。
輸出輸出1個數,對應所需的最少移動次數。
輸入樣例52
5341
輸出樣例
2其實就是找乙個序列中最長的,差為1的等差數列的長度。。。用n減掉就是答案了。。。
但是最長上公升子串行會t掉的,wuwuwu,我這種菜雞就只能想到最長上公升子串行。。。好菜啊!!!!
先看正確的吧:(等差數列的優化真的優化挺多的,學到了!!!)
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
2e5+5;
int dp[maxn]
;int
main()
int ans =1;
for(
int i =
1;i <= n;i++
)printf
("%d\n"
,n - ans)
;return0;
}
t掉的最長上公升子串行。。。嚶嚶嚶!!
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
2e5+5;
int dp[maxn]
;int
main()
dp[0]
=1;int ans =1;
for(
int i =
1;i <= n;i++)}
}printf
("%d\n"
,n - ans)
;return0;
}
最長等差數列 最長等差數列 及子串行分析
今日面試題 最長等差數列 給定未排序的陣列,請給出方法找到最長的等差數列。子串行分析 原題給定長度為n的整數數列 a0,a1,an 1,以及整數s。這個數列會有連續的子串行的整數總和大於s的,求這些數列中,最小的長度。分析如果只是像題目這樣的描述,沒有強調正數,可以採用o n 2 的方法。但是,很多...
Leetcode 最長等差數列 dp
n個不同的正整數,找出由這些數組成的最長的等差數列。例如 1 3 5 6 8 9 10 12 13 14 等差子數列包括 僅包括兩項的不列舉 1 3 5 1 5 9 13 3 6 9 12 3 8 13 5 9 13 6 8 10 12 14 其中6 8 10 12 14最長,長度為5。因為沒看清題...
最長等差數列 找數字 及最長等差數列分析
今日面試題 找數字 陣列a中,除了某乙個數字x之外,其他數字都出現了三次,而x出現了一次。請給出最快的方法,找到x。最長等差數列分析 原題給定未排序的陣列,請給出方法找到最長的等差數列。分析題目描述比較簡單,但是有乙個問題我們需要首先搞清楚 等差數列中的數字,是否要和原始陣列中的順序一致。題目中,並...