삼중항을 병합하여 대상 삼중항 형성

3137 단어 leetcodepython
triplet은 세 개의 정수로 구성된 배열입니다. 2D 정수 배열 삼중항이 주어집니다. 여기서 triplet[i] = [ai, bi, ci]는 i번째 삼중항을 설명합니다. 또한 얻고자 하는 삼중항을 설명하는 정수 배열 target = [x, y, z]가 제공됩니다.

목표를 얻으려면 세 쌍에 다음 작업을 여러 번(아마도 0) 적용할 수 있습니다.

두 인덱스(0 인덱스) i와 j(i != j)를 선택하고 triplet[j]를 업데이트하여 [max(ai, aj), max(bi, bj), max(ci, cj)]가 되도록 합니다.
예를 들어 triplet[i] = [2, 5, 3]이고 triplet[j] = [1, 7, 5]인 경우 triplet[j]는 [max(2, 1), max(5, 7), 최대(3, 5)] = [2, 7, 5].
대상 삼중항 [x, y, z]를 삼중항의 요소로 얻을 수 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

class Solution:
    def mergeTriplets(self, triplets: List[List[int]], target: List[int]) -> bool:
        good = set()

        for t in triplets:
            if t[0] > target[0] or t[1] > target[1] or t[2] > target[2]:
                continue
            for i, v in enumerate(t):
                if v == target[i]:
                    good.add(i)


        return len(good) == 3


좋은 웹페이지 즐겨찾기