मान लीजिए हमारे पास एक सरणी nums है, और तीन अलग-अलग पूर्णांक a, b और c हैं। हमें गुड ट्रिपलेट्स की संख्या ढूंढनी है। एक ट्रिपलेट (nums[i], nums[j], nums[k]) को गुड ट्रिपलेट कहा जाता है यदि निम्नलिखित शर्तें पूरी होती हैं:
0 <= i < j < k < numsमें तत्वों की संख्या|nums[i] - nums[j]| <= a|nums[j] - nums[k]| <= b|nums[i] - nums[k]| <= c
हमें गुड ट्रिपलेट्स की गिनती करनी है।
उदाहरण के लिए, यदि इनपुट nums = [5,2,3,3,12,9], a = 7, b = 2, c = 3 है, तो आउटपुट 4 होगा क्योंकि गुड ट्रिपलेट्स हैं [(5,2,3), (5,2,3), (5,3,3), (2,3,3)]।
समाधान के चरण
res := 0iको 0 सेnumsके आकार - 1 तक लूप चलाएंjकोi+1सेnumsके आकार - 1 तक लूप चलाएंkकोj+1सेnumsके आकार - 1 तक लूप चलाएं- यदि
|nums[i] - nums[j]| <= aऔर|nums[j] - nums[k]| <= bऔर|nums[i] - nums[k]| <= c, तोres := res + 1 resवापस करें
उदाहरण (पायथन)
def solve(nums, a, b, c):
res = 0
for i in range(len(nums)):
for j in range(i+1, len(nums)):
for k in range(j+1, len(nums)):
if abs(nums[i] - nums[j]) <= a and abs(nums[j] - nums[k]) <= b and abs(nums[i] - nums[k]) <= c:
res += 1
return res
nums = [5,2,3,3,12,9]
a = 7
b = 2
c = 3
print(solve(nums, a, b, c))
इनपुट
[5,2,3,3,12,9], 7, 2, 3
आउटपुट
4