I couldn't find upper_bound equivalent in java. Is there any alternative function that I can use ?
PS: I did google this
# | User | Rating |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 155 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | djm03178 | 152 |
I couldn't find upper_bound equivalent in java. Is there any alternative function that I can use ?
PS: I did google this
Name |
---|
You can write your own upper_bound and lower_bound (It's not hard), and there is another alternative (using a TreeSet)
Here are some methods :
ceiling(E e) : Returns the least element in this set greater than or equal to the given element, or null if there is no such element.
floor(E e) : Returns the greatest element in this set less than or equal to the given element, or null if there is no such element.
headSet(E toElement) : Returns a view of the portion of this set whose elements are strictly less than toElement.
You can find the full documentation here : https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html
Java has Arrays.binary_search() static method instead.
But it is not useful in that case. If there are more than one element present in the array it will return any index.
Create array of pairs (a[i], i). Then use binarySearch(new Pair(x, -1)) or binarySearch(new Pair(x, n))
Yes it can be done in that way but using object array results in taking far more time in sorting than primitive array.
http://scod.ir/Yit