2016-09-11 3 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 

は、あなたはそれがすでに発見された最良よりも優れているかどうかを確認してください。もしそうなら、あなたはそれを新しいベストとして扱います。 beginとendが負の場合、空集合が解です。そうでなければ、最も良い解決策は解決策です。

関連する問題