xyz 시퀀스를 형성하는 이 작업을 계속 수행할 수 있습니다. 소문자 알파벳만 포함하는 비어 있지 않은 문자열 목록이 있는 경우 동일한 이동 시퀀스에 속하는 모든 문자열을 그룹화해야 합니다. 따라서 입력이 [abc, bcd, acef, xyz, az, ba, a, z]와 같으면 출력은 [ [abc ,bcd,xyz], [az,ba], [acef], [a,z] ] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 맵 정의 하나의 2D 배열 ret 정의 initialize i :=0의 경우, i <문자열의 크
이진 트리가 있다고 가정합니다. 우리는 단일 값 하위 트리의 수를 계산해야 합니다. 여기서 Uni-value 하위 트리는 하위 트리의 모든 노드가 동일한 값을 가짐을 나타냅니다. 따라서 입력이 root =[5,1,5,5,5,null,5],와 같은 경우 그러면 출력은 4가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의하면 노드가 필요합니다. 노드가 비어 있으면 - true를 반환 왼쪽 :=해결(노드 왼쪽) right :=해결(노드의 오른쪽) 왼쪽이
2D 벡터가 있다고 가정하고 2D 벡터를 평면화하기 위해 반복자를 설계하고 구현해야 합니다. 다음과 같이 다른 방법이 있습니다 - next() - 현재 요소의 다음 요소를 반환합니다. hasNext() - 다음 요소가 있는지 여부를 확인합니다. 따라서 입력이 [[1,2],[3],[4]]와 같으면 다음과 같이 함수를 호출하면 - iterator.next(); iterator.next(); iterator.next(); iterator.hasNext(); iterator.hasNext();
회의 시간 간격의 배열이 있다고 가정합니다. 두 번 시작 및 종료 시간[[s1,e1],[s2,e2],...]이 있으며 각 쌍은 규칙(si
숫자가 있다고 가정해 보겠습니다. 숫자는 요인의 곱으로 간주할 수 있습니다. 따라서 8 =2 x 2 x 2입니다. =2 x 4. 우리는 정수 n을 취하는 하나의 함수를 만들고 그 인수의 가능한 모든 조합을 반환해야 합니다. 따라서 입력이 12와 같으면 출력은 [[2, 6], [2, 2, 3], [3, 4]]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의하면 n, target, start,가 필요합니다. ret라는 목록 목록을 정의합니다. n이 1과 같으면 - 리턴
일련의 숫자가 있다고 가정합니다. 이진 탐색 트리의 올바른 선주문 순회 시퀀스인지 확인해야 합니다. 시퀀스의 각 숫자가 고유하다고 가정할 수 있습니다. 다음 이진 검색 트리를 고려하십시오 - 따라서 입력이 [5,2,1,3,6]과 같으면 출력은 true가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − itr :=-1 낮음 :=-무한대 for initialize i :=0, i <사전 주문 크기, 업데이트(i 1 증가), − x :=선주문[i] x <낮으면 - 거짓을 반환 =
nums라고 하는 n개의 정수 배열이 있고 목표도 있다고 가정하고 여기에서 인덱스 삼중항(i, j, k)의 수를 찾아야 합니다. 여기서 i, j, k는 모두 0에서 n - 1 범위에 있으며 nums[i] + nums[j] + nums[k]
0에서 n-1까지 레이블이 지정된 n개의 노드가 있고 방향이 지정되지 않은 모서리 [u,v] 목록이 있다고 가정합니다. 이러한 모서리가 유효한 트리를 구성하는지 여부를 확인하는 함수를 정의해야 합니다. 따라서 입력이 n =5이고 edge =[[0,1], [0,2], [0,3], [1,4]]인 경우 출력은 true가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dfs() 함수를 정의하면 노드, 파, 그래프 및 방문이라는 다른 배열이 필요합니다. 방문한[노드]가 1과 같으면 - true를 반환
문자열 s가 있다고 가정하고 모든 회문 순열을 찾아야 하고 반복은 없을 것입니다. 회문 순열이 없으면 단순히 빈 문자열을 반환합니다. 따라서 입력이 aabb와 같으면 출력은 [abba, baab]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret 배열 정의 solve() 함수를 정의하면 s, sz, 하나의 정렬되지 않은 맵 m, idx가 0으로 초기화, sz가 0과 같으면 - ret 끝에 s 삽입 반환 evenFound :=거짓 방문한 한 세트 정의 m의 각 키-
문자열 목록이 있다고 가정합니다. 문자열 목록을 문자열로 인코딩할 수 있는 알고리즘을 설계해야 합니다. 또한 문자열의 원래 목록으로 다시 디코딩할 디코더를 하나 만들어야 합니다. 이 기계에 인코더와 디코더가 설치되어 있고 다음과 같은 두 가지 기능이 있다고 가정합니다. - 머신 1(발신자)에는 기능이 있습니다. string encode(vector<string< strs) { //code to read strings and return encoded_string; } 머신 2(수신기)에는 기능이 있
n명의 사람(0에서 n - 1까지 레이블이 지정됨)이 있고 그 중 한 명의 유명인이 있을 수 있다고 가정합니다. 다른 n - 1명의 사람들이 모두 x를 알고 있지만 x는 그들 중 누구도 알지 못할 때 사람 x가 유명인이라고 말할 수 있습니다. 여기서 우리는 유명인이 누구인지 찾거나 연예인이 없는지 확인해야 합니다. 우리는 A라는 사람에게 안녕, A. B를 아십니까?라는 한 가지 질문만 할 수 있습니다. A가 B를 알고 있는지 여부에 대한 정보를 얻으려면. 우리는 유명인을 찾기 위해 최소한의 질문을 해야 합니다. 그래프라는 입력으로
nums라는 정렬되지 않은 배열이 있다고 가정하고 nums[0] =nums[2] <=nums[3].... 등이 되도록 제자리에서 재정렬해야 합니다. 따라서 입력이 nums =[3,5,2,1,6,4]와 같으면 출력은 [3,5,1,6,2,4]가 되며 다른 답변이 있을 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=숫자 크기 i :=0 초기화의 경우, i
두 개의 1D 배열이 있다고 가정하고 요소를 교대로 반환하는 반복자를 구현해야 합니다. 두 가지 방법이 있습니다 - next() - 다음 요소를 가져오기 위해 hasNext() - 다음 요소가 있는지 여부를 확인합니다. 따라서 입력이 v1 =[1,2] v2 =[3,4,5,6] 이면 출력은 [1,3,2,4,5,6], 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 쌍의 하나의 대기열 q 정의 이니셜라이저에서 두 개의 배열 v1 및 v2를 가져옵니다. 크기가 v1이면 - q에 { 0, 0 }
이진 검색 트리와 그 안에 노드가 있다고 가정하고 BST에서 해당 노드의 순서대로 후속 항목을 검색해야 합니다. 노드 p의 후임자가 p.val보다 큰 가장 작은 키를 가진 노드라는 것을 알고 있기 때문입니다. 따라서 입력이 root =[2,1,3], p =1,와 같은 경우 그러면 출력은 2가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 재귀 메서드 inorderSuccessor()를 정의합니다. 이것은 루트를 취하고 p 루트가 null이면 - null 반환 루트의 val <=p의 v
하나의 m x n 2D 그리드가 있고 이 세 가지 가능한 값으로 초기화된다고 가정합니다. -1 벽이나 장애물. 게이트의 경우 0입니다. INF 무한대는 빈 방을 의미합니다. 여기서 2^31 - 1 =2147483647은 게이트까지의 거리가 2147483647보다 작다고 가정할 수 있으므로 INF입니다. 각 빈 방을 가장 가까운 게이트까지의 거리로 채웁니다. 게이트에 도달할 수 없는 경우 INF로 채워야 합니다. 따라서 입력이 다음과 같으면 INF -1 0 INF INF INF INF -1 INF -1 IN
플립 게임을 하는 두 명의 플레이어가 있다고 가정합니다. 여기에 + 및 -의 두 문자만 포함된 문자열이 있습니다. player1과 player2는 교대로 두 개의 연속 ++를 --로 뒤집습니다. 한 플레이어가 더 이상 움직일 수 없을 때 게임이 종료되므로 다른 플레이어가 승자가 됩니다. 시작 플레이어가 승리를 보장할 수 있는지 확인하는 함수를 정의해야 합니다. 따라서 입력이 s =++++와 같으면 시작 플레이어가 중간 ++를 +--+로 뒤집음으로써 승리를 보장할 수 있으므로 출력은 true가 됩니다. 이 문제를 해결하기 위해 다
이진 트리가 있다고 가정합니다. 가장 긴 연속 시퀀스 경로의 길이를 찾을 수 있는지 확인해야 합니다. 경로가 일부 시작 노드에서 상위-하위 연결을 따라 트리의 임의 노드까지의 노드 시퀀스를 참조하는 경우. 가장 긴 연속 경로는 부모에서 자식으로 따라야 하지만 반대로는 안 됩니다. 따라서 입력이 다음과 같으면 가장 긴 연속 시퀀스 경로가 3-4-5이므로 출력은 3이 되므로 3을 반환합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solveUtil() 함수를 정의하면 node, prev, len이 1로 초기화
두 개의 행렬 A와 B가 있다고 가정하고 AB의 결과를 찾아야 합니다. A의 열 번호가 B의 행 번호와 같다고 가정할 수 있습니다. 따라서 입력이 [[1,0,0],[-1,0,3]] [[7,0,0],[0,0,0],[0,0,1]]과 같은 경우 , 1 0 0 -1 0 3 7 0 0 0 0 0 0 0 1 그러면 출력은 [[7,0,0],[-7,0,3]]이 됩니다. 7 0 0 -7 0 3 이 문제를 해결하기 위해 다음 단계를 따릅니다. − r1 :=A의 크기, r2 :=B의 크기 c1 :=A[0]의
이진 트리가 있다고 가정하고 노드 값의 수직 순회를 찾아야 합니다. 두 개의 노드가 같은 행과 열에 있는 경우 순서는 왼쪽에서 오른쪽이어야 합니다. 따라서 입력이 다음과 같으면 그러면 출력은 [[9],[3,15],[20],[7]]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 맵 정의 solve() 함수를 정의하면 노드가 필요하고 x는 0으로 초기화합니다. 노드가 null이면 - 반환 해결(노드 왼쪽, x - 1) 해결(노드 오른쪽, x + 1) m[x] 끝에
단어가 있다고 가정합니다. 우리는 단어의 일반화된 약어를 생성할 수 있는 함수를 정의해야 합니다. 따라서 입력이 단어와 같으면 출력은 [단어, 1ord, w1rd, wo1d, wor1, 2rd, w2d, wo2, 1o1d, 1or1, w1r1, 1o2, 2r1, 3d, w3, 4] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret 배열 정의 solve() 함수를 정의하면 s, idx,가 필요합니다. =크기가 s이면 - ret 끝에 s 삽입 반환 y :=인덱스 0에서 idx까지의 s