मान लीजिए हमारे पास target नामक एक सरणी है जिसमें धनात्मक मान हैं। अब initial नामक समान आकार की एक सरणी पर विचार करें जिसमें सभी शून्य हैं। हमें target सरणी को initial से उत्पन्न करने के लिए आवश्यक न्यूनतम संचालनों की संख्या ज्ञात करनी है यदि हम यह संचालन करते हैं: (initial से कोई भी उपसरणी चुनें और प्रत्येक मान को एक से बढ़ाएं।)
इसलिए, यदि इनपुट है target = [2,3,4,3,2], तो आउटपुट 4 होगा क्योंकि प्रारंभ में सरणी [0,0,0,0,0] थी, पहले पास में सूचकांक 0 से 4 तक उपसरणी चुनें और इसे 1 से बढ़ाएं, इसलिए सरणी [1,1,1,1,1] होगी, फिर फिर से सूचकांक 0 से 4 तक चुनें ताकि यह [2,2,2,2,2] बन जाए, फिर सूचकांक 1 से 3 तक तत्व चुनें और बढ़ाएं, इसलिए सरणी [2,3,3,3,2] होगी, और अंत में सूचकांक 2 चुनें और सरणी को [2,3,4,3,2] बनाएं जो target के समान है।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
prev_num := 0
steps := 0
target में प्रत्येक val के लिए, करें
steps := steps + val - prev_num यदि val > prev_num अन्यथा 0
prev_num := val
steps वापस करें
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(target):
prev_num = 0
steps = 0
for val in target:
steps += val - prev_num if val > prev_num else 0
prev_num = val
return steps
target = [2,3,4,3,2]
print(solve(target))
इनपुट
[2,3,4,3,2]
आउटपुट
4