題目描述
統計一個數字在排序數組中出現的次數。
我在看到這題的一瞬間就想到用壓棧的方法了,不知道爲什麼,可能是最近用棧用多了,已經習慣用棧來處理問題了。笑哭。
思路很簡單,先給個判斷條件,當第一次開始出現要統計的數時,開始壓棧,到開始出現其他數時,停止壓棧(因爲數組是有序的),然後返回棧中數的個數即可。思路很簡單,就不細講了。直接上代碼:
import java.util.*;
public class Solution {
public int GetNumberOfK(int [] array , int k) {
Stack<Integer> stack = new Stack<Integer>();
boolean flag = false;
int number = 0;
for(int i=0;i<array.length;i++){
if(k == array[i]){
flag = true;
}
if(true == flag){
if(stack.isEmpty()){
stack.push(array[i]);
number++;
}else{
if(-1 != stack.search(array[i])){
stack.push(array[i]);
number++;
}else{
return number;
}
}
}
}
return number;
}
}