배열 num과 세 개의 다른 정수 a, b, c가 있다고 가정합니다. 우리는 좋은 세쌍둥이의 수를 찾아야 합니다. 삼중항(nums[i], nums[j], nums[k])은 다음 조건이 참인 경우 좋은 삼중항이라고 합니다. -
-
0 <=i
-
|숫자[i] - 숫자[j]| <=
-
|숫자[j] - 숫자[k]| <=ㄴ
-
|숫자[i] - 숫자[k]| <=c
좋은 세쌍둥이의 수를 세어야 합니다.
따라서 입력이 nums=[5,2,3,3,12,9], a =7, b =2, c =3과 같으면 좋은 삼중항이 [(5, 2,3), (5,2,3), (5,3,3), (2,3,3)]
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
해상도 :=0
-
범위 0에서 숫자 - 1까지의 i에 대해 수행
-
i+1 범위에서 nums - 1 크기의 j에 대해 수행
-
범위 j+1에서 nums - 1까지의 k에 대해 수행
-
경우 |숫자[i] - 숫자[j]| <=a 및 |nums[j] - nums[k]| <=b 및 |nums[i] - nums[k]| <=c, 다음
-
해상도 :=해상도 + 1
-
-
-
-
-
반환 해상도
예제(파이썬)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
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