2012-04-26 82 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阵列。