मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें यह पता लगाना है कि सूची कितनी बार पॉजिटिव-टू-नेगेटिव या नेगेटिव-टू-पॉजिटिव स्लोप में दिशा बदलती है।
यदि इनपुट [2, 4, 10, 18, 6, 11, 13] जैसा है, तो आउटपुट 2 होगा, क्योंकि यह 10 पर दिशा बदलती है (पॉजिटिव-टू-नेगेटिव), और फिर 6 पर (नेगेटिव-टू-पॉजिटिव)।
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- i को 1 से nums के आकार - 1 तक के लिए, करें:
- यदि nums[i-1] < nums[i] > nums[i+1] या nums[i-1] > nums[i] < nums[i+1], तो
- count := count + 1
- यदि nums[i-1] < nums[i] > nums[i+1] या nums[i-1] > nums[i] < nums[i+1], तो
- count लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution:
def solve(self, nums):
count = 0
for i in range(1, len(nums) - 1):
if nums[i - 1] < nums[i] > nums[i + 1] or nums[i - 1] > nums[i] < nums[i + 1]:
count += 1
return count
ob = Solution()
print(ob.solve([2, 4, 10, 18, 6, 11, 13]))
इनपुट
[2, 4, 10, 18, 6, 11, 13]
आउटपुट
2