2012-04-26 105 views
1

一個整數序列X = X1,X2 ... Z字形序列,XN被定義Z字形,如果:找到與貪婪算法

XI < XI + 1如果xi是奇數
XI> XI + 1如果xi是偶數

我需要貪婪算法找到給定序列內的最高Z字形子序列的尺寸

編輯: 有一個例子:
Y = (3,4,8,5,6,2)
對於3,8,5,6,2或4,8,5,6,2輸出應爲5

回答

0

只需運行該序列並檢查每個元素是否滿足條件。

你能否試着解釋一下greedy algorithms與此有什麼關係?

編輯:好吧,現在它更有意義,然後在原來的。 不幸的是我不能想到一個好的解決方案atm。

+0

對不起,我寫的文字很差。現在是正確的,再次抱歉。 – cifz 2012-04-26 18:30:55

+0

如果你「想不到一個好的解決方案」,最好刪除你的答案。 – 2012-04-26 21:12:03

0

你可以使用這個算法(只是初始化O(DD)和E(VEN)陣列1):

for i=1 to n 
for j=i-1 down to 1 do 
if a[i]>a[j] and o[i]< e[j]+1 then o[i]=e[j]+1 
else if a[i]<a[j] and e[i]<o[j]+1 then e[i]=o[j]+1 

答案是最大的O和E陣列。