Leetcode 剑指 Offer 53 - I. 在排序数组中查找数字 I
题目
统计一个数字在排序数组中出现的次数。
示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: 2
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: 0
思路
- 直接调用python的Counter函数即可
代码 —— python
class Solution:
def search(self, nums: List[int], target: int) -> int:
import collections
return collections.Counter(nums)[target]
Leetcode 剑指 Offer 53 - II. 0~n-1中缺失的数字
题目
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
示例 1:
输入: [0,1,3]
输出: 2
示例 2:
输入: [0,1,2,3,4,5,6,7,9]
输出: 8
思路
- 利用53 - I的代码, 从range(0, len(nums) + 1)中依次搜索, 找到第一个计数为0的元素返回即可
代码 —— python
class Solution:
def missingNumber(self, nums: List[int]) -> int:
import collections
dic = collections.Counter(nums)
for i in range(0, len(nums) + 1):
if dic[i] == 0:
return i