此题出自牛客网的剑指offer专题
题目描述
统计一个数字在排序数组中出现的次数。
解题思路
思路1:使用穷举法,简单粗暴。时间复杂度为O(n)
public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array.length==0){
return 0;
}
int count=0;
for(int i=0;i<array.length;i++){
if(array[i]==k){
count++;
}
}
return count;
}
}
思路2:使用HashMap的特性
import java.util.HashMap;
//使用HashMap
public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array.length == 0){
return 0;
}
HashMap<String,Integer> mp = new HashMap<>();
for(int i=0;i<array.length;i++){
String str = String.valueOf(array[i]);
if(!mp.containsKey(str)){
mp.put(str,1);
} else {
mp.put(str,mp.get(str)+1);
}
}
String key = String.valueOf(k);
return mp.get(key)==null? 0:mp.get(key);
}
}