剑指offer-37-数字在排序数组中出现的次数(二分查找) -- Java实现
程序员文章站
2024-03-20 12:03:40
...
题目
统计一个数字在排序数组中出现的次数。
分析
思路一:
代码:
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int low = 0;
int high = array.length - 1;
int mid = low + (high - low) / 2;
int numK = 0;
while(low <= high) {
mid = low + (high - low) / 2;
if(array[mid] == k) {
numK++;
int midR = mid + 1;
int midL = mid - 1;
while(midR <= array.length - 1 && array[midR] == k) {
numK++;
midR++;
}
while(midL >= 0 && array[midL] == k) {
numK++;
midL--;
}
return numK;
} else if(array[mid] > k) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return numK;
}
}
推荐阅读
-
数字在排序数组中出现的次数(二分查找法)——剑指Offer
-
九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找
-
剑指offer:数字在排序数组中出现的次数(二分查找 leetcode 34)
-
38 数字在排序数组中出现的次数(改正了二分查找的等于号)
-
剑指offer-37-数字在排序数组中出现的次数(二分查找) -- Java实现
-
剑指offer——数字在排序数组中出现的次数(复习二分)
-
day40:67. 数字在排序数组中出现的次数(二分查找)
-
剑指offer面试题53:在排序数组中查找数字(Java 实现)
-
剑指Offer系列(java版,详细解析)53.在排序数组中查找数字
-
剑指offer之在排序数组中查找数字 I(C++/Java双重实现)