मान लीजिए कि हमारे पास nums नामक एक सरणी है, हमें यह जांचना होगा कि क्या सरणी मूल रूप से गैर-घटते क्रम में सॉर्ट की गई थी, और फिर कुछ पदों को घुमाया गया (शून्य हो सकता है) या नहीं। डुप्लिकेट भी सरणी में मौजूद हो सकते हैं।
इसलिए, यदि इनपुट nums =[12,15,2,5,6,9] की तरह है, तो आउटपुट ट्रू होगा, क्योंकि इसे दो स्थानों के लिए दाईं ओर घुमाया जाता है
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
जे:=0
-
जबकि j <अंकों का आकार - 1 और अंक[j] <=nums[j + 1], करें
-
जे:=जे + 1
-
-
res :=(सूचकांक j + 1 से अंकों के अंत तक अंकों का उप-सरणी) संयोजित (संख्याओं के सूचकांक 0 से j तक अंकों का उप-सरणी)
-
मैं के लिए 0 से रेस -1 के आकार में, करो
-
अगर रेस [i]> रेस [i + 1], तो
-
झूठी वापसी
-
-
-
सही लौटें
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): j = 0 while (j < len(nums) - 1 and nums[j] <= nums[j + 1]): j += 1 res = nums[j + 1 : len(nums)] + nums[0:j + 1] for i in range(len(res) - 1): if res[i] > res[i + 1]: return False return True nums = [12,15,2,5,6,9] print(solve(nums))
इनपुट
[12,15,2,5,6,9]
आउटपुट
True