DP 等差數列的最長上公升子串行

2021-10-11 16:32:25 字數 1268 閱讀 1274

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。最長等差數列分析 原題給定未排序的陣列,請給出方法找到最長的等差數列。分析題目描述比較簡單,但是有乙個問題我們需要首先搞清楚 等差數列中的數字,是否要和原始陣列中的順序一致。題目中,並...