Leetcode_34【在排序数组中查找元素的第一个和最后一个位置】
文章目录:
- 题目
- 脚本一
- 脚本一逻辑
题目:
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值,返回 [-1, -1]。
示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: [3,4]
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: [-1,-1]
脚本一:【用时:96ms】
class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: list1 = [] n1 = len(nums) if target in nums: list1.append(nums.index(target)) nums.reverse() list1.append(n1 - nums.index(target) -1) return(list1) else: return([-1,-1])
脚本一逻辑:
- 第一:通过if语句判断列表中是否包含目标数字;
- 第二:若有,通列表的index方法获取目标列表中的第一个目标元素的索引值,并将其添加到记录结果的列表中;然后通过反转目标列表,再次获取反转后的第一个目标元素的索引值,然后通过运算,将其添加到记录目标元素的列表中
- 第三:若没有,则直接返回[-1,-1]