如果出现以下情况,则整数序列X = x1,x2 ...,xn定义为ZIG-ZAG:
xi<如果xi是奇数,则xi + 1 xi>如果xi是偶数,则xi + 1
我需要一个贪心算法来查找给定序列中最大ZIG-ZAG子序列的维数
编辑:
有一个例子:
Y =(3,4,8,5,6,2)
对于3,8,5,6,2或4,8,5,6,2
答案 0 :(得分:0)
答案 1 :(得分: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数组的最大值。