劍指OFFER-數字在升序陣列中出現的次數(Java)
題目描述
統計一個數字在升序陣列中出現的次數。
示例 1
輸入
[1,2,3,3,3,3,4,5],3
返回值
4
核心程式碼實現
public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array == null || array.length == 0){
return 0;
}
int counts = 0;
/*方法一
for(int i = 0; i < array.length; i++){
if(k == array[i]){
counts++;
}
}
return counts;
*/
//方法二:二分法
int low = 0, mid = 0, high = array.length - 1;
while(low < high){
mid = low + (high - low)/2;
if(array[mid] < k){
low = mid + 1;
}else if(array[mid] > k){
high = mid - 1;
}else{
break;
}
}
for(int i = low; i <= high; i++){
if(array[i] == k){
counts++;
}
}
return counts;
}
}
相關文章
- 劍指Offer-39-數字在排序陣列中出現的次數排序陣列
- [劍指offer題解][Java]陣列中出現次數超過一半的數字Java陣列
- 劍指offer-轉陣列的最小數字-php陣列PHP
- Leetcode 劍指 Offer 39. 陣列中出現次數超過一半的數字LeetCode陣列
- JZ-037-數字在排序陣列中出現的次數排序陣列
- 力扣 - 劍指 Offer 39. 陣列中出現次數超過一半的數字力扣陣列
- 找到陣列中出現特定次數數字的問題陣列
- 劍指 Offer 56 - I. 陣列中數字出現的次數陣列
- 陣列中出現次數超過一半的數字陣列
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 48 陣列中出現次數超過一半的數字陣列
- Matlab tabulate統計數字出現的次數,如果陣列中出現0Matlab陣列
- 查詢陣列中出現次數大於陣列長度一半的數字陣列
- JZ-028-陣列中出現次數超過一半的數字陣列
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 每日一練(20):陣列中出現次數超過一半的數字陣列
- js找出陣列中出現最多的元素和次數JS陣列
- 劍指Offer--陣列中重複的數字陣列
- 【劍指offer】7.旋轉陣列的最小數字陣列
- 【劍指 Offer】11. 旋轉陣列的最小數字陣列
- 劍指 Offer 11. 旋轉陣列的最小數字陣列
- nowcoder-劍指offer-二維陣列的查詢陣列
- 劍指Offer-連續子陣列中的最大和陣列
- Leetcode 劍指 Offer 03. 陣列中重複的數字LeetCode陣列
- 劍指offer-例題 連續子陣列的最大和陣列
- 劍指offer之列印超過陣列一半的數字陣列
- 統計陣列中各數字(元素)出現的次數陣列
- 劍指offer刷題之路--1.陣列中重複的數字陣列
- (python版)《劍指Offer》JZ06:旋轉陣列的最小數字Python陣列
- 找出陣列中第 k 大的數字及其出現次數陣列
- Matlab 統計陣列中各數字(元素)出現的次數Matlab陣列
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- 劍指Offer-34-把陣列排成最小的數陣列
- 劍指offer——把陣列排成最小的數C++陣列C++
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- 給定一個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋ 的元素。陣列
- 找出陣列中只出現一次的數字陣列