《劍指office》數字在排序數組中出現的次數



題目描述

統計一個數字在排序數組中出現的次數。

我在看到這題的一瞬間就想到用壓棧的方法了,不知道爲什麼,可能是最近用棧用多了,已經習慣用棧來處理問題了。笑哭。
思路很簡單,先給個判斷條件,當第一次開始出現要統計的數時,開始壓棧,到開始出現其他數時,停止壓棧(因爲數組是有序的),然後返回棧中數的個數即可。思路很簡單,就不細講了。直接上代碼:
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;
    }
}

發佈了37 篇原創文章 · 獲贊 80 · 訪問量 4001
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章