[Lintcode]Count of Smaller Number
2016-09-11 15:58
260 查看
Give you an integer array (index from 0 to n-1, where n is the size of this array, value from 0 to 10000) and an query
list. For each query, give you an integer, return the number of element in the array that are smaller than the given integer.
Example
For array
and queries
根据题目提示,这道题可以使用线段树。这里只是用简单的二分法进行查找。
public class Solution {
/**
* @param A: An integer array
* @return: The number of element in the array that
* are smaller that the given integer
*/
public ArrayList<Integer> countOfSmallerNumber(int[] A, int[] queries) {
ArrayList<Integer> res = new ArrayList<Integer>();
if(A.length == 0) {
for(int i : queries) {
res.add(0);
}
return res;
}
Arrays.sort(A);
for(int i = 0; i < queries.length; i++) {
res.add(binaryS(A, queries[i]));
}
return res;
}
private int binaryS(int[] A, int o) {
int length = A.length - 1;
while(o <= A[length] && length > 0) length /= 2;
while(o > A[length] && length < A.length - 1) length ++;
return length;
}
}
list. For each query, give you an integer, return the number of element in the array that are smaller than the given integer.
Example
For array
[1,2,7,8,5],
and queries
[1,8,5], return
[0,4,2]
根据题目提示,这道题可以使用线段树。这里只是用简单的二分法进行查找。
public class Solution {
/**
* @param A: An integer array
* @return: The number of element in the array that
* are smaller that the given integer
*/
public ArrayList<Integer> countOfSmallerNumber(int[] A, int[] queries) {
ArrayList<Integer> res = new ArrayList<Integer>();
if(A.length == 0) {
for(int i : queries) {
res.add(0);
}
return res;
}
Arrays.sort(A);
for(int i = 0; i < queries.length; i++) {
res.add(binaryS(A, queries[i]));
}
return res;
}
private int binaryS(int[] A, int o) {
int length = A.length - 1;
while(o <= A[length] && length > 0) length /= 2;
while(o > A[length] && length < A.length - 1) length ++;
return length;
}
}
相关文章推荐
- LintCode_248 Count of Smaller Number
- LintCode_249 Count of Smaller Number before itself
- LintCode_284 Count of Smaller Number
- LintCode_249 Count of Smaller Number before itself
- [LintCode] Count of Smaller Number before itself
- [LintCode]Count of Smaller Number before itself
- lintcode-medium-Count of Smaller Number
- Count of Smaller Number before itself
- Count of Smaller Number
- LeetCode "Count of Smaller Number After Self"
- lintcode: Count of Smaller Number
- LintCode "Count of Smaller Number"
- Lintcode: Count of Smaller Number
- #248 Count of Smaller Number
- Count of Smaller Number After Itself
- LintCode "Count of Smaller Number before itself"
- 315、Count of Smaller Numbers After Self(Hard)
- leetcode:Count of Smaller Numbers After Self
- How to count the number of threads in a process on Linux
- function to count the number of "1" of one byte