剑指 Offer 53 - I. 在排序数组中查找数字 I (★★★)

简介: 剑指 Offer 53 - I. 在排序数组中查找数字 I (★★★)

链接: 原文链接.

class Solution:
    # 自己写的解法,直接遍历
    def search(self, nums: List[int], target: int) -> int:
        # nums、target
        count = 0
        for i in nums:
            if target == i:
                count += 1
        return count
# 大佬的写法,二分查找
# 不是特别理解.
# class Solution:
    # def search(self, nums: [int], target: int) -> int:
    #     # 搜索右边界 right
    #     i, j = 0, len(nums) - 1
    #     while i <= j:
    #         m = (i + j) // 2
    #         if nums[m] <= target: i = m + 1
    #         else: j = m - 1
    #     right = i
    #     # 若数组中无 target ,则提前返回
    #     if j >= 0 and nums[j] != target: return 0
    #     # 搜索左边界 left
    #     i = 0
    #     while i <= j:
    #         m = (i + j) // 2
    #         if nums[m] < target: i = m + 1
    #         else: j = m - 1
    #     left = j
    #     return right - left - 1
# class Solution:
#     def search(self, nums: [int], target: int) -> int:
#         def helper(tar):
#             i, j = 0, len(nums) - 1
#             while i <= j:
#                 m = (i + j) // 2
#                 if nums[m] <= tar: i = m + 1
#                 else: j = m - 1
#             return i
#         return helper(target) - helper(target - 1)
相关文章
|
4天前
剑指 Offer 53 - I:在排序数组中查找数字 I
剑指 Offer 53 - I:在排序数组中查找数字 I
23 0
|
4天前
剑指 Offer 03:数组中重复的数字
剑指 Offer 03:数组中重复的数字
13 0
|
4天前
剑指 Offer 38:字符串的排列
剑指 Offer 38:字符串的排列
23 0
|
4天前
剑指 Offer 56 - II:数组中数字出现的次数 II
剑指 Offer 56 - II:数组中数字出现的次数 II
22 0
|
4天前
剑指 Offer 56 - I:数组中数字出现的次数
剑指 Offer 56 - I:数组中数字出现的次数
19 0
|
4天前
剑指 Offer 04:二维数组中的查找
剑指 Offer 04:二维数组中的查找
18 0
|
4天前
剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I
剑指Offer LeetCode 面试题53 - I. 在排序数组中查找数字 I
20 0
图解LeetCode——剑指 Offer 53 - I. 在排序数组中查找数字 I
图解LeetCode——剑指 Offer 53 - I. 在排序数组中查找数字 I
64 0