LeetCode 34:在排序数组中查找元素的第一个和最后一个位置

题目要求 先看官方示例中的输入 nums = [5,7,7,8,8,10] 和 target = 8。答案必须是完整范围 [3,4];只返回下标 3 或 4,都没有回答目标值第一次和最后一次出现在哪里。 给定一个按非递减顺序排列的整数数组 nums 和一个整数 target: 如果 target 存在,返回它第一次和最后一次出现的下标 [first, last]。 如果 target 不存在,返回 [-1, -1]。 题目最终要求算法的运行时间为 O(log n)。 LeetCode 使用以下方法契约: class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: 官方示例 输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4] 输入:nums = [5,7,7,8,8,10], target = 6 输出:[-1,-1] 输入:nums = [], target = 0 输出:[-1,-1] 约束 0 <= nums.length <= 10^5 -10^9 <= nums[i] <= 10^9 -10^9 <= target <= 10^9 nums 按非递减顺序排列。 Step 1:先得到一个肯定正确的范围 当目标值连续出现多次时,怎样保证同时记录最早和最晚的下标? ...

2025年12月4日 · 7 分钟 · map[name:Jeanphilo]