統計一個數字在排序數組中出現的次數。
示例 1:
輸入: nums = [5,7,7,8,8,10], target = 8
輸出: 2
示例2:
輸入: nums = [5,7,7,8,8,10], target = 6
輸出: 0
- 思路:
- 遍歷列表,遇到與target的值相等的數時,計數器加一,最后返回計數器的值。
- 遍歷列表,將每個數以及出現的次數添加到一個列表中,最后返回字典中相應的值
- 直接使用Counter函數,統計數字出現的次數。
- 一、統計個數。
nums = [5,7,7,8,8,10]
def mfun1(nums, target):
mdc1 = {}
for i in nums: # 遍歷列表, 將出現次數信息存進字典中
if i not in mdc1: # 判斷,如果不在字典中,設置其默認值為1
mdc1[i] = 1
else:
mdc1[i] += 1 # 如果存在,對應的值 + 1
# print(i, type(i))
if target in mdc1:
return mdc1[target] # 返回字典中數據即可
else:
return 0
print(mfun1(nums, 323))
- 二、借助字典。
nums = [5,7,7,8,8,10]
def mfun2(nums, target):
n = 0
for i in nums: # 遍歷循環,依次比較,相等則計數器+1,
if i == target:
n += 1
return n # 最后將計數器返回
print(mfun2(nums, 12))
- 三、Counter函數。
from collections import Counter
# Counter(nums) 會返回統計結果,返回的對象類似於一個字典,可以通過key獲取統計的次數。
def mfun3(nums, target):
a = Counter(nums) # 統計數字
# print(a, type(a))
if target in a: # 判斷是否在
return a[target] #如果存在,返回對應的統計數字
else:
return 0 # 不存在返回0
print(mfun3(nums, 11))