-
Notifications
You must be signed in to change notification settings - Fork 26
/
1752.CheckifArrayIsSortedandRotated.py
65 lines (55 loc) · 2.05 KB
/
1752.CheckifArrayIsSortedandRotated.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
'''
Given an array nums, return true if the array was
originally sorted in non-decreasing order, then rotated
some number of positions (including zero). Otherwise,
return false.
There may be duplicates in the original array.
Note: An array A rotated by x positions results in an
array B of the same length such that
A[i] == B[(i+x) % A.length], where % is the modulo
operation.
Example:
Input: nums = [3,4,5,1,2]
Output: true
Explanation: [1,2,3,4,5] is the original sorted array.
You can rotate the array by x = 3 positions
to begin on the the element of value 3:
[3,4,5,1,2].
Example:
Input: nums = [2,1,3,4]
Output: false
Explanation: There is no sorted array once rotated that
can make nums.
Example:
Input: nums = [1,2,3]
Output: true
Explanation: [1,2,3] is the original sorted array.
You can rotate the array by x = 0 positions
(i.e. no rotation) to make nums.
Example:
Input: nums = [1,1,1]
Output: true
Explanation: [1,1,1] is the original sorted array.
You can rotate any number of positions to make nums.
Example:
Input: nums = [2,1]
Output: true
Explanation: [1,2] is the original sorted array.
You can rotate the array by x = 5 positions
to begin on the element of value 2: [2,1].
Constraints:
- 1 <= nums.length <= 100
- 1 <= nums[i] <= 100
'''
#Difficulty: Easy
#96 / 96 test cases passed.
#Runtime: 32 ms
#Memory Usage: 14.3 MB
#Runtime: 32 ms, faster than 100.00% of Python3 online submissions for Check if Array Is Sorted and Rotated.
#Memory Usage: 14.3 MB, less than 100.00% of Python3 online submissions for Check if Array Is Sorted and Rotated.
class Solution:
def check(self, nums: List[int]) -> bool:
for i in range(1, len(nums)):
if nums[i-1] > nums[i]:
return nums[-1] <= nums[0] and nums[i:] == sorted(nums[i:])
return True