컴퓨터 시각 에 집중 하 는 AndyJ 의 어머니 를 따라 알고리즘 을 배 우 는 매일 한 문제 leetcode 986. 구간 목록 의 교 집합

9677 단어
이 문 제 는 딱 봐 도 생각 이 없 지만, 사실은 다시 봐 도 생각 이 없다.두 목록 을 합 치 려 고 생각 하기 시 작 했 는데 말 이 안 돼!!그 러 니 조급해 하지 마 세 요. 일 관 된 생각: 조급해 하지 마 세 요 + 첫 번 째 생각 은 믿 을 수 없어 요 + 잘 생각해 보 세 요!면접 이나 비행기 시험 이 생각 나 지 않 아 무릎 을 꿇 었 으 니까.이 문 제 는 문 제 를 보고 풀 었 는데, 여전히 두 바늘 이 믿 을 만하 다 는 것 을 발견 하 였 다 다음 과 같다.
986.        
                 ,              ,      。

            。

(   ,    [a, b](   a <= b)     x    ,  a <= x <= b。
             ,     ,      。
  ,[1, 3]   [2, 4]      [2, 3]。)

코드 를 외 워 쓰 고, 이 문 제 는 두 바늘 로 먼저 위조 코드 를 쓴다.
def xxx():
	i = 0
	j = 0
	while i<A and j<B
		    
			        
			i,j   
		    
			i,j   

자, 더 이상 말 하지 않 겠 습 니 다. 실제 코드, show you my code.
class Solution(object):
    def intervalIntersection(self, A, B):
        """
        :type A: List[List[int]]
        :type B: List[List[int]]
        :rtype: List[List[int]]
        """
        i = 0
        j = 0

        res = []
        while i<len(A) and j<len(B):
            # mei you jiao ji
            if A[i][1] < B[j][0] or B[j][1] < A[i][0]:
                if A[i][1] < B[j][0]:
                    i+=1
                elif B[j][1] < A[i][0]:
                    j+=1
            # you jiao ji
            else:
                start = max(A[i][0],B[j][0])
                end = min(A[i][1],B[j][1])
                res.append([start,end])
                if A[i][1] < B[j][1]:
                    i+=1
                elif A[i][1] > B[j][1]:
                    j+=1
                else:
                    i+=1
                    j+=1
        return res

제출실수 로 쌍 백 이 가...자, 오늘 하루 한 문제 씩 나 오 는 앤 디 제 이의 아버 지 는 여기까지 입 니 다.

좋은 웹페이지 즐겨찾기