回答編集履歴

1

ちょっと補足

2019/03/09 14:44

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- 単純に「ある条件を満たす最初の要素」を返す場合は`find`が使えます。しかし、大きさを比較可能な要素からなるソート済みの配列の場合は`bsearh`を使った方が高速になります。ただここで問題なのは与えられた`POINT_STEP`は昇順であるため、「ある条件を満たす最初の要素」ではなく「ある条件を満たす最後の要素」になるとうことです。それを実現するようなメソッドはありませんが、逆に降順であったならば「ある条件を満たす最初の要素」になります。つまり、
17
+ 単純に「ある条件を満たす最初の要素」を返す場合は`find`が使えます。しかし、大きさを比較可能な要素からなるソート済みの配列の場合は`bsearh`を使った方が高速になります。ただここで問題なのは与えられた`POINT_STEP`は昇順であるため、『ある値以下の最後の要素』を探す必要があり、これでは「ある条件を満たす最初の要素」ではなくという「ある条件を満たす最後の要素」の形になってします。それを実現するようなメソッドはありませんが、逆に降順であったならば、『ある値以下の最初の要素』を探すことになり、「ある条件を満たす最初の要素」の形になります。つまり、
18
18
 
19
19
 
20
20