मान लीजिए, हमारे पास कई पूर्णांक संख्याओं वाली एक सरणी है। हम दी गई संख्याओं की सरणी से सभी सन्निकट सबएरे ढूंढते हैं और इसे दूसरी सूची में डालते हैं। अब, हम प्रत्येक सबएरे को उस सबएरे में अधिकतम तत्व से बदल देते हैं। एक संख्या k भी दी गई है, और हमें यह पता करना है कि अब कितने सबएरे दिए गए नंबर से अधिक हैं।
इसलिए, यदि इनपुट है: input_array = [5, 6, 7, 8], k = 7, तो आउटपुट 4 होगा।
दिए गए इनपुट सरणी से सन्निकट सबएरे हैं: {5}, {6}, {7}, {8}, {5, 6}, {6, 7}, {7, 8}, {5, 6, 7}, {6, 7, 8}, {5, 6, 7, 8}
यदि हम सबएरे को उनमें अधिकतम तत्व से अपडेट करते हैं, तो सबएरे बन जाते हैं: {5}, {6}, {7}, {8}, {6}, {7}, {8}, {7}, {8}, {8}।
4 सेट हैं जहां तत्व 7 से अधिक है।
हल करने के चरण
- count := 0
- consecutive := 0
- input_array में प्रत्येक x के लिए:
- यदि x > k, तो consecutive := 0
- अन्यथा, consecutive := consecutive + 1, count := count + consecutive
- input_array का आकार * फ्लोर((input_array का आकार + 1) / 2) - count वापस करें
उदाहरण
def solve(input_array, k):
count = 0
consecutive = 0
for x in input_array:
if x > k:
consecutive = 0
else:
consecutive += 1
count += consecutive
return len(input_array) * (len(input_array) + 1) // 2 - count
print(solve([5, 6, 7, 8], 7))
इनपुट
[5, 6, 7, 8], 7
आउटपुट
4