मान लीजिए हमारे पास अद्वितीय तत्वों की एक सरणी nums है। हमें जांचना है कि ये शर्तें पूरी होती हैं या नहीं:
- तत्व 1 से n की रेंज में होंगे।
- सरणी आरोही क्रम में सॉर्ट नहीं होनी चाहिए।
उदाहरण के लिए, यदि nums = [2, 6, 1, 5, 3, 4] है, तो आउटपुट True होगा।
हल करने का तरीका
- n := nums का आकार
- total := nums[0], is_sorted := True
- 1 से n-1 तक लूप:
- यदि nums[i] == nums[i-1], तो False लौटाएं (डुप्लिकेट)
- यदि nums[i] < nums[i-1], तो is_sorted := False
- total += nums[i]
- यदि is_sorted True है, तो False लौटाएं
- यदि total == n(n+1)/2 तो True अन्यथा False लौटाएं
उदाहरण कोड
def solve(nums):
n = len(nums)
total = nums[0]
is_sorted = True
for i in range(1, n):
if nums[i] == nums[i - 1]:
return False
if nums[i] < nums[i - 1]:
is_sorted = False
total += nums[i]
if is_sorted:
return False
return total == (n * (n + 1) // 2)
nums = [2, 6, 1, 5, 3, 4]
print(solve(nums))
इनपुट
[2, 6, 1, 5, 3, 4]
आउटपुट
True