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

2021-08-19 19:36:21 字數 384 閱讀 9613

統計乙個數字在排序陣列中出現的次數。

思路:可以使用暴力列舉,時間複雜度o(n),但肯定不是最優解

思路二:因為陣列data是排好序的,可以利用這一資訊,採用改進的二分查詢,找到值為key的最小索引下標index,然後往右搜尋,統計出現次數,**如下:

**:

class solution  else 

}if(data[left] == k) cnt = left;

else if(data[right] == k) cnt = right;

else return 0;

while(++cnt < n && data[cnt] == k)

return res;

}};

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

題目描述 統計乙個數字在排序陣列 現的次數 class solution 因為data中都是整數,所以可以稍微變一下,不是搜尋k的兩個位置,而是搜尋k 0.5和k 0.5 這兩個數應該插入的位置,然後相減即可。class solution int bisearch vector data,doubl...

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

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

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

何海濤 劍指offer 名企面試官精講典型程式設計題 九度oj 題目描述 統計乙個數字在排序陣列中出現的次數。輸入 每個測試案例包括兩行 第一行有1個整數n,表示陣列的大小。1 n 10 6。第二行有n個整數,表示陣列元素,每個元素均為int。第三行有1個整數m,表示接下來有m次查詢。1 m 10 ...