Saltar a contenido

34. Find First and Last Position of Element in Sorted Array

34
Find First and Last Position of Element in Sorted Array Medium
Tags: Array, Binary Search

Solución (Python)

class Solution:
    def searchRange(self, nums, target):
        n = sorted(nums)

        first = -1
        last = -1

        for i in range(len(n)):
            if target != nums[i]:
                continue

            if first == -1:
                first = i

            last = i

        return [first, last]


# Tests
nums1 = [5,7,7,8,8,10]      # 3 y 4
target1 = 8

nums2 = [5,7,7,8,8,10]
target2 = 6

nums3 = []
target3 = 0


sol = Solution()
print(sol.searchRange(nums1, target1))
print(sol.searchRange(nums2, target2))
print(sol.searchRange(nums3, target3))


# Esta es una solucion que se supone que funcionaba pero ya olvide como.

        # n = sorted(nums)

        # resultado = []

        # left = 0
        # right = len(n) - 1

        # for i in range(len(nums)):
        #     if nums[left] == target:
        #         return nums[i]
        #         resultado.append(nums[i])
        #     else:
        #         left += 1

        #     for j in range(len(nums) - 1 ,- 1):
        #         if nums[right] == target:
        #             return nums[j]
        #             resultado.append(nums[j])
        #         else:
        #             right -= 1

        # for i in range(len(nums)):
        #     if nums[left] and nums[right] != target:
        #         return [-1, -1]