2016-09-11 43 views

回答

0

是的,有:

begin = -1 
end = -1 
best = 0 
new = 1 
finalbegin = -1 
finalend = -1 
for i = 1 to n 
    if (new and input[i] >= 1 and input <= k) 
     begin = i 
     new = 0 
    end if 
    if (new and (input[i] <= 1 or input[i] >= k) or (i = n)) 
     if (input[i] <= 1 or input[i] >= k) 
      end = i - 1 
     else 
      end = i 
     end if 
     new = 1 
     if (end - begin >= best) 
      finalbegin = begin 
      finalend = end 
      best = end - begin + 1 
     end if 
    end if 
end for 

無論何時你發現一個新的區間,你檢查它是否比已經找到了最好,只有更好。如果是這樣,你把它當作新的最好的。如果開始和結束是否定的,那麼空集是解決方案。否則最好找到解決辦法

相關問題