Q38 數字在排序陣列中出現的次數

2021-07-16 16:08:35 字數 775 閱讀 9523

public class q38數字在排序陣列中出現的次數 ;

system.out.println(test.getnumberofk(array, 3));

}public int getnumberofk(int array, int k)

}return number;

}//利用遞迴找出第一次出現k的位置

public int getthefirstk(int array, int k, int start, int end)

int midindex = (start + end) / 2;//中間位置的下標

if(array[midindex] == k)else

}else if (array[midindex] > k) else

return getthefirstk(array, k, start, end);//遞迴實現第一次出現k值的地方

}//利用遞迴找出最後一次出現k的位置

public int getthelastk(int array, int k, int start, int end)

int midindex = (start + end) / 2;

if(array[midindex] == k)else

}else if (array[midindex] < k) else

return getthelastk(array, k, start, end);//遞迴找出最後一次出現k的位置

}}

數字在排序陣列中出現次數

統計乙個數字在排序陣列中出現的次數。思路 求乙個數字在這個排序陣列中出現的次數,首先想到的是使用二分查詢,當我找到乙個位置,然後往前就可以到達最前面第乙個出現該數字的位置,往後就可以到達最後面最後乙個出現該數字的位置,然後兩個位置相減此時就得到該數字出現的次數。但是問題在於我用二分查詢到位置後,然後...

面試題38 數字在排序陣列中出現的次數

問題說明 1.給定排序的陣列,例如從小到大已經排序。2.給定某個查詢關鍵字,求出該關鍵字出現的次數。3.完全遍歷一遍,時間複雜度為o n 並未充分利用排序的資訊。4.需要借鑑二分查詢的思想改進,演算法的時間複雜度為o logn package com.zhang.csdn author pizi d...

面試題38 數字在排序陣列中出現的次數

統計乙個數字在排序陣列中出現的次數。陣列是排序的,所以重複出現的數字是相鄰排列的。用二分查詢演算法,找到第一次出現的位置,和 最後一次出現的位置。判斷第一次出現的位置條件為 當前數字的前乙個是否與之相等,若是則繼續查詢,否則該位置就是第一次出現的位置。判斷最後一次出現的位置條件為 當前數字的後乙個是...