class Solution:
def findMin(self, nums: List[int]) -> int:
if len(nums) == 0:
return -1
if len(nums) == 1:
return nums[0]
start = 0
end = len(nums) -1
while start < end:
mid = (start + end) //2
if mid > 0 and nums[mid] < nums[mid-1]:
return nums[mid]
break
elif nums[start] <= nums[mid] and nums[mid] > nums[end]:
start = mid +1
else:
end = mid -1
return nums[start]
313A - Ilya and Bank Account | 1469A - Regular Bracket Sequence |
919C - Seat Arrangements | 1634A - Reverse and Concatenate |
1619C - Wrong Addition | 1437A - Marketing Scheme |
1473B - String LCM | 1374A - Required Remainder |
1265E - Beautiful Mirrors | 1296A - Array with Odd Sum |
1385A - Three Pairwise Maximums | 911A - Nearest Minimums |
102B - Sum of Digits | 707A - Brain's Photos |
1331B - Limericks | 305B - Continued Fractions |
1165B - Polycarp Training | 1646C - Factorials and Powers of Two |
596A - Wilbur and Swimming Pool | 1462B - Last Year's Substring |
1608B - Build the Permutation | 1505A - Is it rated - 2 |
169A - Chores | 765A - Neverending competitions |
1303A - Erasing Zeroes | 1005B - Delete from the Left |
94A - Restoring Password | 1529B - Sifid and Strange Subsequences |
1455C - Ping-pong | 1644C - Increase Subarray Sums |