현재 위치 (0, 0)(직교 평면)에 앉아 있는 로봇이 있다고 가정합니다. N(북쪽), S(남쪽), W(서쪽), E(동쪽)를 포함하여 할 수 있는 움직임 목록이 있는 경우. 그러나 로봇이 이전에 있었던 지점에 도달하면 새로운 방문하지 않은 지점에 도달할 때까지 같은 방향으로 계속 이동합니다. 이동 후 (x, y) 좌표에서 끝나는지 여부를 확인해야 합니다. 따라서 입력이 다음과 같으면 move =[N,N,E,N,W,S], coord =[0, -1]이면 로봇이 두 번 이동하므로 출력은 True가 됩니다. 위, 오른쪽, 다시 위로
정사각형 행렬이 있다고 가정하고 시계 반대 방향으로 90도 회전해야 합니다. 1 4 7 2 5 8 3 6 9 그러면 출력은 7 8 9 4 5 6 1 2 3 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 행렬이 비어 있으면 빈 목록 반환 n :=행렬의 행 수 행렬의 각 행에 대해 수행 행 반전 범위 0에서 n−1까지의 i에 대해 다음을 수행합니다. 범위 0에서 i−1까지의 j에 대해 수행 교환 행렬[i, j] 및 행렬[j, i] 반환 행렬
각 간격이 [start, end)와 같은 간격 목록이 있고 유형이라는 문자열 목록도 있다고 가정합니다. 이제 주어진 i에 대해 간격[i]은 누군가가 [시작, 종료)부터 작업 유형[i]에 대해 작업한 시간을 보여줍니다. 동일한 유형의 두 간격은 겹치거나 접촉하지 않습니다. 따라서 각 항목에 [start, end, num_types]가 있고 처음부터 끝까지 num_types개의 작업이 진행 중임을 나타내는 정렬된 병합 목록을 찾아야 합니다. 따라서 입력이 간격 =[ [0, 3], [5, 7], [0, 7] ] 유형 =[문제 해결, 뉴
숫자 n과 적이라는 2D 행렬이 있다고 가정합니다. 여기서 n은 [0, n - 1]에서 레이블이 지정된 n명의 사람들이 있음을 나타냅니다. 이제 적의 각 행에는 [a, b]가 포함되며, 이는 및 b가 적임을 의미합니다. 같은 그룹에 적이 되는 두 사람이 없도록 n명을 두 그룹으로 나누는 것이 가능한지 확인해야 합니다. 따라서 입력이 n =4, 적수 =[[0, 3],[3, 2]]인 경우 이 두 그룹 [0, 1, 2] 및 [ 3]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 그래프 :=빈 인접 목록 적의 각 적
nums[i]가 i번째 동물의 포식자를 표시하고 포식자가 없으면 -1을 유지하는 nums라는 숫자 목록이 있다고 가정합니다. 직간접적인 포식자와 같은 그룹에 동물이 포함되지 않도록 가장 작은 수의 동물 그룹을 찾아야 합니다. 따라서 입력이 nums =[1, 2, −1, 4, 5, −1]과 같으면 출력은 [0, 3], [1, 4]와 같은 그룹을 가질 수 있으므로 3이 됩니다. ], [2, 5]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − A가 비어 있으면 0 반환 adj :=빈 지도 vis :=새
숫자 번호가 있다고 가정합니다. 0 ≤ i ≤ num 범위의 각 숫자 i에 대해 이진 대응 항목에서 1의 수를 계산하고 목록으로 반환해야 합니다. 따라서 숫자가 5이면 숫자는 [0, 1, 2, 3, 4, 5]이고 이 숫자에서 1의 개수는 [0, 1, 1, 2, 1, 2]이므로 7을 반환합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − res :=num + 1개의 0을 포함하는 배열 오프셋 :=0 범위 1에서 num + 1까지의 i에 대해 i 및 i − 1 =0이면 res[i] :=1이고 오프셋 :=
nums라는 숫자 목록이 있다고 가정하고 목록을 두 그룹 A와 B로 나눌 수 있는지 확인해야 합니다. A의 합과 B의 합이 같은지 확인해야 합니다. 여기서 A의 모든 숫자는 B의 모든 숫자보다 엄격하게 작습니다. 따라서 입력이 nums =[3, 4, 5, 12]와 같으면 A =[3,4,5] 및 B =[12]를 가질 수 있고 둘 다 합계 12를 가질 수 있으므로 출력은 True가 됩니다. . 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 목록 번호 정렬 total :=num에 있는 모든 요소의 합 s :=0,
값 k와 이진 탐색 트리가 있다고 가정합니다. 여기서 각 노드는 리프이거나 2개의 자식을 포함합니다. k 값을 포함하는 노드를 찾아 형제의 값을 반환해야 합니다. 따라서 입력이 다음과 같으면 k =4. 그러면 출력은 10이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − util() 함수를 정의합니다. 이것은 루트, k, 및를 취합니다. 루트의 왼쪽이 null이 아니고 루트의 오른쪽이 null이 아닌 경우 반환 루트 값이면 루트의 오른쪽 값이 k와 같으면 ans의 끝에 roo
각 행이 오름차순으로 정렬된 2D 행렬이 있다고 가정합니다. 우리는 모든 행에 존재하는 가장 작은 수를 찾아야 합니다. 그런 결과가 없으면 -1을 반환합니다. 따라서 입력이 다음과 같으면 2 3 5 5 10 10 1 3 5 그러면 출력은 5가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 행렬이 비어 있으면 반환 -1 first :=행렬의 첫 번째 행에서 새 집합 행렬의 각 행에 대해 수행 first :=행의 요소 집합을 먼저 교차 첫 번째가 비어 있으면 반환 -
정수가 거의 없는 배열 A가 있다고 가정합니다. 숫자를 짝수 다음 홀수로 정렬해야 합니다. 따라서 짝수를 먼저 넣고 홀수를 입력하십시오. 따라서 배열이 A =[1, 5, 6, 8, 7, 2, 3]과 같으면 결과는 [6, 8, 2, 1, 5, 7, 3]과 같습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − i :=0 및 j :=0 설정 동안 j
숫자 n이 있다고 가정하고 그 합이 n이 되도록 두 개 이상의 숫자를 찾아야 하고 이 숫자의 곱이 최대화되면 곱을 찾아야 합니다. 따라서 입력이 n =12와 같으면 출력은 3 + 3 + 3 + 3 =12 및 3 * 3 * 3 * 3 =81과 같이 81이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dp() 함수를 정의합니다. n 소요됩니다. n이 0과 같으면 1 반환 답변 :=0 범위 1에서 n + 1까지의 i에 대해 수행 ans :=ans의 최대값 및 (i * dp(n − i
스택 목록이 있다고 가정하고 스택 또는 스택을 가져와서 원하는 수의 요소를 팝할 수 있습니다. 모든 스택이 동일한 합계 값을 갖도록 달성할 수 있는 최대 합계를 찾아야 합니다. 따라서 입력이 스택 =[[3, 4, 5, 6], [5, 6, 1, 4, 4], [10, 2, 2, 2] ]와 같으면 출력은 12가 됩니다. −와 같은 작업을 수행할 수 있습니다. 첫 번째 스택에서 [6]을 팝니다. [3, 4, 5] 합은 12입니다. 두 번째 스택에서 [4,4]를 팝니다. [5, 6, 1] 합계는 12입니다. 세 번째 스택에
nums라고 하는 숫자 목록이 있다고 가정하고 그 합이 목록의 총합보다 엄밀히 더 큰 하위 목록이 있는지 확인해야 합니다. 따라서 입력이 nums =[1, −2, 3, 4]와 같으면 목록의 합이 6이고 하위 목록 [3, 5]의 합이 8이므로 출력은 True가 됩니다. 엄격하게 더 큽니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − total :=요소 수의 합 s :=0 숫자로 된 각 i에 대해 수행 s :=s + i s <0이면 참을 반환 s :=0 i :=숫자의 크기
nums라는 숫자 목록이 있다고 가정하고 엄격하게 증가하는 값의 하위 시퀀스를 선택합니다. 여기서 각 두 숫자의 차이는 두 인덱스의 차이와 같습니다. 따라서 이러한 부분 수열의 최대 합을 찾아야 합니다. 따라서 입력이 nums =[6, 7, 9, 9, 8, 5]와 같으면 인덱스가 [0, 1, 삼]. 각 연속 숫자의 차이는 [1, 2]이며 인덱스의 차이와 동일합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − d :=빈 지도 숫자로 된 각 인덱스 i와 값 x에 대해 수행 d[x − i] :=d[x − i]
두 개의 이진 트리가 있다고 가정합니다. 두 번째 트리가 첫 번째 트리의 하위 트리인지 확인해야 합니다. 따라서 입력이 다음과 같으면 그러면 출력이 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의합니다. 이것은 뿌리를 내릴 것입니다, 대상 root가 null이고 target도 null이면 참을 반환 root가 null이거나 target이 null이면 거짓을 반환 root의 값이 target의 값과 같으면 해결(루트의 왼쪽, 대상의
하나의 9×9 스도쿠 그리드가 있다고 가정합니다. 그것이 유효한지 지금 확인해야 합니다. 채워진 셀만 다음 규칙에 따라 유효성을 검사해야 합니다. - 각 행은 반복 없이 1-9 사이의 숫자를 포함해야 합니다. 각 열은 반복 없이 1-9 사이의 숫자를 포함해야 합니다. 그리드의 9(3-3)개의 각 하위 상자는 반복 없이 1-9의 숫자를 포함해야 합니다. 스도쿠 그리드가 다음과 같다고 가정합니다 - 유효합니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 0에서 8 사이의 i에 대해 row
nums라고 하는 숫자 목록과 값 k가 있다고 가정하면 목록에 k가 되는 4개의 고유 요소가 있는지 확인해야 합니다. 따라서 입력이 nums =[11, 4, 6, 10, 5, 1] k =25와 같으면 합이 25인 [4, 6, 10, 5]가 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 목록 번호 정렬 n :=숫자 크기 0 ~ n − 4 범위의 i에 대해 다음을 수행합니다. i + 1 ~ n − 3 범위의 j에 대해 다음을 수행합니다. l :=j + 1, h
nums라고 하는 숫자 목록과 또 다른 값 k가 있다고 가정하면 목록에서 합이 k인 고유한 요소 3개를 찾을 수 있는지 확인해야 합니다. 따라서 입력이 nums =[11, 4, 6, 10, 5, 1] k =20과 같으면 합이 20인 숫자 [4,6,10]이 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 목록 번호 정렬 l :=0, r :=숫자 크기 - 1 동안 l
nums라는 숫자 목록과 다른 값 대상이 있다고 가정하고 nums[i] + nums[j] + nums[k]
nums라고 하는 숫자 목록과 다른 값 k가 있다고 가정하고 nums(a, b, c)에서 |a + b + c − k| 최소화되고 절대 차이를 반환합니다. 따라서 입력이 nums =[2, 5, 25, 6] k =14와 같으면 출력은 1이 됩니다. 마치 [2, 5, 6]을 취하면 14에 가장 가깝고 절대 차이는 다음과 같습니다. |13 - 14| =1. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 목록 번호 정렬 답변 :=1^9 범위 0에서 숫자 크기까지의 i에 대해 j :=i + 1 k :=숫자의