समस्या विवरण
संख्याओं की एक सूची nums दी गई है, हमें जांचना है कि सूची कितनी बार पॉजिटिव-टू-नेगेटिव या नेगेटिव-टू-पॉजिटिव स्लोप बदलती है।
उदाहरण
इनपुट: [2, 4, 10, 18, 6, 11, 13]
आउटपुट: 2
व्याख्या: 10 पर दिशा बदलती है (बढ़ते से घटते), फिर 6 पर (घटते से बढ़ते)।
एल्गोरिदम
count = 0इनिशियलाइज़ करेंi = 1सेlen(nums)-2तक:- यदि
nums[i-1] < nums[i] > nums[i+1](पीक) याnums[i-1] > nums[i] < nums[i+1](वैली):count++
- यदि
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