专栏首页备份数据结构算法操作试题(C++/Python)——在排序数组中查找元素的第一个和最后一个位置

数据结构算法操作试题(C++/Python)——在排序数组中查找元素的第一个和最后一个位置

数据结构算法操作试题(C++/Python):数据结构算法操作试题(C++/Python)——目录


1. 题目

leetcode 链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/

2. 解答

python: 28ms, 12mb, 100%

class Solution(object):
    def searchRange(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        left = 0
        right = len(nums) - 1
        equalIndex = -1
        while left <= right:
            midIndex = (left + right) / 2
            if nums[midIndex] == target: 
                equalIndex = midIndex
                break
            elif target < nums[midIndex]: right = midIndex - 1
            elif target > nums[midIndex]: left = midIndex + 1
        if equalIndex == -1: return [-1, -1]
        else:
            return self.getIndexList(nums, equalIndex)
        
    def getIndexList(self, nums, index):
        retIndexList = [0, len(nums) - 1]
        for i in range(index - 1, -1, -1):
            if nums[i] != nums[index]:
                retIndexList[0] = i + 1
                break
        for i in range(index + 1, len(nums)):
            if nums[i] != nums[index]:
                retIndexList[1] = i - 1
                break
        return retIndexList

其他方法看 leetcode 链接 评论区~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据结构算法操作试题(C++/Python)——四数之和

    数据结构算法操作试题(C++/Python):数据结构算法操作试题(C++/Python)——目录

    莫斯
  • 数据结构算法操作试题(C++/Python)——下一个排列

    leetcode 链接:https://leetcode-cn.com/problems/next-permutation/

    莫斯
  • 数据结构算法操作试题(C++/Python)——删除排序数组中的重复项

    leetcode 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array...

    莫斯
  • LeetCode---两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    TrueDei
  • LeetCode 5428. 重新排列数组

    给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。

    freesan44
  • LeetCode 两数之和 Python

  • 018. 四数之和 | Leetcode题解

    给定一个包含n 个整数的数组 nums 和一个目标值 target ,判断 nums 中是否存在四个元素 a, b,c 和 d ,使得a + b + c ...

    苏南
  • 015. 三数之和 | Leetcode题解

    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 _a,b,c ,_使得 a + b + c = 0 ?请你找出所有满足条件且不重复...

    苏南
  • LeetCode 283. 移动零 - easy

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

    HLQ_Struggle
  • leetcode每日一题:283. 移动零

    地址:https://leetcode-cn.com/problems/move-zeroes/

    用户3578099

扫码关注云+社区

领取腾讯云代金券