TopCoder SRM 585: LISNumberDivTwo
seq[i] >= seq[i+1]
になっている部分が LISNumber の切れ目になるので、その箇所の個数に1足したものが答え。
Zip()
の段階で 1 か 0 に変換して Sum()
すれば短く書けることに気づいた。
public class LISNumberDivTwo { public int calculate(int[] seq) { return seq.Zip(seq.Skip(1), (s1, s2) => s1 >= s2 ? 1 : 0).Sum() + 1; } }