題目:
統計乙個數字在排序陣列中出現的次數。
思路:
最直觀的方法就是從頭遍歷,統計次數。
class solution
return count;
}};
也可以借助庫函式
舉個例子,1 2 2 2 5 6 7第乙個大於等於2的位址是第乙個2的位址
第乙個大於2的位址是5的位址
相減剛好是2的個數
class solution
};
或者用二分法進行查詢,找到k的所對應的下標後,定義兩個下標變數,乙個向前走,乙個向後走,最後取兩個下標的差值減1就得到了該數出現的次數。
class solution
else
if(k < data[mid])
right = mid-1;
else
left = mid+1;
}if(i == -1)
return
0; left = i-1;//記錄該數字出現的首位置
right = i+1;//記錄該數字出現的末位置
while(left>=0 && data[left]==k)
while(rightreturn right-left-1;
}};
數字在排序陣列中出現次數
統計乙個數字在排序陣列中出現的次數。思路 求乙個數字在這個排序陣列中出現的次數,首先想到的是使用二分查詢,當我找到乙個位置,然後往前就可以到達最前面第乙個出現該數字的位置,往後就可以到達最後面最後乙個出現該數字的位置,然後兩個位置相減此時就得到該數字出現的次數。但是問題在於我用二分查詢到位置後,然後...
數字在排序陣列中出現的次數
何海濤 劍指offer 名企面試官精講典型程式設計題 九度oj 題目描述 統計乙個數字在排序陣列中出現的次數。輸入 每個測試案例包括兩行 第一行有1個整數n,表示陣列的大小。1 n 10 6。第二行有n個整數,表示陣列元素,每個元素均為int。第三行有1個整數m,表示接下來有m次查詢。1 m 10 ...
數字在排序陣列中出現的次數
題目 統計乙個數字下排序陣列中出現的次數。例如輸入排序陣列和數字3,由於3在這個陣列中出現了4次,因此輸出4。當然第一眼就能想到遍歷這個陣列然後統計這個陣列中某個數字出現的次數。當然第一眼就能想到的方法通常來說效率都不怎麼樣 再稍微想一下這個題目,是乙個已序的陣列,所以呢,不難想到二分查詢。我們可以...