其他分享
首页 > 其他分享> > 力扣每日一题21.07.16

力扣每日一题21.07.16

作者:互联网

剑指 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

限制:0<=数组长度<=50000

思路:与主站34题相同,仅返回值不同:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/

代码:

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        # 法1::直接遍历
        count = 0
        for i in range(len(nums)):
            if nums[i] == target:
                count += 1
            elif nums[i] > target:
                break
        return count
        
        # 法2、标准解法:二分查找
        # l,r= 0,len(nums) - 1
        # while l <= r:
        #     mid = (l + r + 1) // 2
        #     if nums[l] == target:
        #         if nums[r] == target:
        #             return r - l + 1
        #         elif nums[mid] == target:
        #             r -= 1
        #         else:
        #             r = mid - 1           
        #     elif nums[mid] == target:
        #         l += 1
        #     elif nums[mid] < target:
        #         l = mid + 1
        #     else:
        #         r = mid - 1
        # return 0

        # 法3:调用count方法
        # return nums.count(target)

标签:count,target,nums,int,16,示例,len,力扣,21.07
来源: https://blog.csdn.net/wcy1034036507/article/details/118785162