मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, जहां n तत्व मौजूद हैं। हमें जांचना है कि क्या हम पहली n प्राकृतिक संख्याओं के साथ एक सूची बना सकते हैं या तो बढ़ते या घटते क्रम में, जैसे [1, 2, ..., n] या [n, n - 1, ..., 1] nums को दाएं किसी भी संख्या में बार शिफ्ट करके।
इसलिए, यदि इनपुट है nums = [5,6,1,2,3,4], तो आउटपुट होगा True, क्योंकि हम उन्हें चार बार शिफ्ट करके सरणी [1,2,3,4,5,6] बना सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
n := numsका आकारiके लिए 1 सेn - 1तक की रेंज में, करें:- यदि
|nums[i - 1] - nums[i]|1 नहीं है और|nums[i - 1] - nums[i]|n-1नहीं है, तो:Falseलौटाएं
- यदि
Trueलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
def solve(nums):
n = len(nums)
for i in range(1, n):
if abs(nums[i - 1] - nums[i]) != 1 and abs(nums[i - 1] - nums[i]) != n - 1:
return False
return True
nums = [5,6,1,2,3,4]
print(solve(nums))
इनपुट
[5,6,1,2,3,4]
आउटपुट
True