좌표 목록이 있다고 가정합니다. 각 좌표에는 데카르트 평면의 한 점을 나타내는 두 개의 값 x와 y가 있습니다. 이제 어떤 선에 있는 최대 점 수를 찾으십시오. 따라서 입력이 좌표 =[[6, 2],[8, 3],[10, 4],[1, 1],[2, 2],[6, 6],[7, 7과 같으면 ]], 점들이 선에 있는 [1, 1], [2, 2], [6, 6], [7, 7]]이므로 출력은 4가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 해상도 :=0 범위 0에서 포인트 목록 크기까지의 i에 대해 (x1, y1)
(u, v) 형식의 모서리 목록이 있고 이것이 나무를 나타낸다고 가정합니다. 각 모서리에 대해 입력에 제공된 것과 동일한 순서로 해당 모서리를 포함하는 고유한 경로의 총 수를 찾아야 합니다. 따라서 입력이 edge =[[0, 1],[0, 2],[1, 3],[1, 4]]와 같은 경우 그러면 출력은 [6, 4, 4, 4]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − adj :=주어진 가장자리의 인접 목록 count :=빈 지도 dfs() 함수를 정의합니다. x가 걸립니다. 부모 개수[x]
문자열 s와 정규식 패턴이 있다고 가정합니다. 주어진 패턴이 주어진 문자열과 일치하는지 여부를 확인해야 합니다. 정규식에는 규칙이 거의 없습니다 - . 단일 문자와 일치하는 (마침표) *(별표)는 선행 요소의 0개 이상과 일치합니다. 따라서 입력이 pattern =h.l*o s =hello와 같으면 ra와 단일 문자가 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=s의 크기 m :=p의 크기 dp() 함수를 정의합니다. 이것은 i, j가 걸릴 것입니다
S-표현식으로 문자열이 있다고 가정합니다. S-expression을 평가하고 결과를 정수로 반환해야 합니다. s-expression은 하나의 숫자인 표현식이거나 (+ (- 3 2) (* 3 3))와 같이 괄호로 묶인 재귀 표현식이며, 이는 (3 - 2) + (3 * 3) =10. 여기서 유효한 연산자는 +, -, * 및 /입니다. 따라서 입력이 s =(- (+ 3 2) 2)와 같으면 출력은 ((3 + 2) - 2) =3과 같이 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 스택 :=새 스택 s의 여
0이 물을 나타내고 1이 땅을 나타내는 이진 행렬이 있다고 가정합니다. 섬은 4 방향으로 1을 연결하는 그룹입니다. 섬은 0(물) 또는 가장자리로 둘러싸여 있습니다. 두 섬을 연결하는 가장 짧은 다리의 길이를 찾아야 합니다. 따라서 입력이 다음과 같으면 0 0 1 1 0 1 1 0 0 그러면 출력은 1이 됩니다. 이것은 (1,0)에서 (1,2) 포인트에 연결됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − row :=행렬의 행 개수 col :=행렬의 열 개수 dfs() 함수를 정의합니다. 이
두 개의 문자열 s와 t가 있다고 가정합니다. s와 t를 모두 부분 시퀀스로 포함하는 가장 짧은 문자열의 길이를 찾아야 합니다. 따라서 입력이 s =pipe t =people과 같으면 가능한 상위 시퀀스 중 하나가 pieople이므로 출력은 7이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m :=s의 크기, n :=t의 크기 table :=크기가 (n + 1) x (m + 1)이고 0으로 채워진 테이블 0에서 m 사이의 i에 대해 수행 0에서 n 사이의 j에 대해 수행 i가 0과 같거
1이 육지를 나타내고 0이 물을 나타내는 이진 행렬이 있다고 가정합니다. 그리고 섬은 0(물) 또는 가장자리로 둘러싸인 1의 그룹입니다. 완전히 물로 둘러싸인 모든 섬을 찾아 0으로 수정해야 합니다. 우리가 알고 있듯이 모든 이웃(대각선이 아닌 수평 및 수직)이 0(이웃 중 어느 것도 가장자리가 아님)이면 섬은 물로 둘러싸여 완성됩니다. 따라서 입력이 다음과 같으면 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 그러면 출력은 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
nums라는 숫자 목록과 target이라는 다른 입력이 있다고 가정하면 합계 값이 target과 같거나 더 크도록 가장 짧은 하위 목록의 크기를 찾아야 합니다. 그러한 하위 목록이 없으면 -1을 반환합니다. 따라서 입력이 nums =[2, 11, -4, 17, 4] target =19와 같으면 출력은 2가 됩니다. [17, 4]를 선택하여 최소 19의 합을 얻을 수 있기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ps :=요소가 하나만 있는 목록 0 숫자의 각 숫자에 대해 수행 ps 뒤에 삽
이진 행렬이 있다고 가정합니다. 여기서 0은 빈 셀을 의미하고 1은 사람이 있는 셀을 의미합니다. 두 셀 사이의 거리는 x 좌표의 차이와 y 좌표의 차이 사이의 최대값입니다. 이제 행렬의 셀에서 각 사람까지의 거리와 행렬의 각 변이 모두 k보다 크거나 같은 빈 정사각형이 있는 경우 행렬은 인수 k로 안전한 것으로 간주됩니다. 안전할 수 있는 요인 k의 최대값을 찾아야 합니다. 따라서 입력이 다음과 같으면 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 중간 셀에서 그리드의 각
식물의 높이를 나타내는 높이라는 숫자 목록이 있고 식물의 높이를 1 높이는 데 필요한 가격을 나타내는 비용이라는 값의 또 다른 목록이 있다고 가정합니다. 높이 목록의 각 높이를 인접한 높이와 다르게 만들기 위해 가장 작은 비용을 찾아야 합니다. 따라서 입력이 height =[3, 2, 2] 비용 =[2, 5, 3]과 같으면 출력은 3이 됩니다. 마지막 높이를 1만큼 늘릴 수 있으므로 비용은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − dp() 함수를 정의합니다. idx, l_height가 필요합니다.
문자열 s가 있다고 가정하고 이것은 더 긴 문자열을 인코딩합니다. s는 n(t)의 연결로 표시되고, n(t)는 t, n번의 연결을 나타내며, t는 일반 문자열이거나 재귀적으로 다른 인코딩된 문자열입니다. s의 디코딩된 버전을 찾아야 합니다. 따라서 입력이 s =3(pi)2(3(am))0(f)1(u)와 같으면 출력은 pipipiamamamamamamu가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 나는 :=0 parse() 함수를 정의합니다. 시간이 걸립니다 ans :=새 목록 i
nums라는 숫자 목록과 다른 값 pos가 있다고 가정합니다. (최소값 A) * (A 크기)가 최대화되도록 인덱스 pos를 포함하는 nums의 하위 목록 A를 찾은 다음 값을 반환해야 합니다. 따라서 입력이 nums =[-2, 2, 5, 4] pos =3과 같으면 최상의 하위 목록이 [5, 4]이므로 출력은 8이 됩니다. (5, 4) =4이고 크기는 2이고 4 * 2 =8입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=A[pos], m :=A[pos] 나는 :=위치, j :=위치 범위 0에
num이라는 숫자 목록이 있고 목록에서 최대 하나의 요소를 삭제할 수 있다고 가정합니다. 결과 목록의 최대값과 최소값을 모두 포함하는 하위 목록의 최대 수를 찾아야 합니다. 따라서 입력이 nums =[3, 2, 6, 2, 4, 10]과 같으면 출력은 8이 됩니다. 마치 10을 제거하면 [3, 2, 6, 2, 4]가 되고 최대값과 최소값을 모두 포함하는 8개의 하위 목록이 있습니다. - [2, 6] [6, 2] [2, 6, 2] [3, 2, 6] [6, 2, 4] [2, 6, 2, 4] [3,
nums라고 하는 숫자 목록이 있다고 가정합니다. 숫자 시퀀스의 너비는 시퀀스의 최대 수와 최소 수의 차이입니다. num의 모든 부분열의 너비의 합을 찾아야 합니다. 답이 매우 크면 결과를 10^9+7로 수정합니다. 따라서 입력이 nums =[7, 4, 9]와 같으면 출력은 [7], [4], [9], [7, 4], [ 7, 9], [4, 9], [7, 4, 9] 따라서 너비는 0, 0, 0, 3, 2, 5, 5이므로 15를 얻습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m :=10^9 + 7 목록 번호
2D 행렬과 또 다른 값 k가 있다고 가정합니다. 우리의 목표는 모든 k x k 부분행렬의 가장 낮은 값을 포함하는 행렬을 반환하는 것입니다. 따라서 입력이 다음과 같으면 3 5 6 8 6 5 4 3 12 및 k =2, 그러면 출력은 [[3, 5], [3, 3]] 입니다. 입력에서 왼쪽 상단 부분행렬이 3의 가장 낮은 값을 가짐을 알 수 있습니다. 3 5 8 6 오른쪽 상단 부분행렬의 가장 낮은 값은 5입니다. 5 6 6 5 왼쪽 하단 부분행렬의 가장 낮은 값은 3입니다. 8 6 4 3 오른쪽 하단 부분행렬은
무방향 그래프를 나타내는 edges라는 2D 행렬이 있다고 가정합니다. 행렬 에지의 모든 항목은 에지를 나타내며 (u, v, w) 형식입니다. 이것은 노드 u와 v가 연결되고 간선이 가중치 w를 갖는다는 것을 의미합니다. 모서리(a,b)를 나타내는 정수와 b도 있습니다. 에지(a, b)가 최소 스패닝 트리의 일부인지 알아내야 합니다. 참고 - 그래프가 연결되어 있어야 하며 그래프에 간선(a, b)이 존재합니다. 따라서 입력이 edge =와 같은 경우 [[0, 2, 100], [1, 2, 200], [1, 3, 100], [2,
단어 목록이 있다고 가정합니다. 우리는 주어진 단어가 연결되어 원을 형성할 수 있는지 확인해야 합니다. A의 마지막 문자가 B의 첫 번째 문자와 동일한 경우 A 단어는 연쇄 원에서 다른 단어 B 앞에 배치될 수 있습니다. 모든 단어는 사용해야 하며 한 번만 사용할 수 있습니다(첫 번째/마지막 단어 고려되지 않음). 따라서 입력이 단어 =[ant,dog,tamarind,nausea,gun]과 같으면 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 그래프 :=새로운 키-값 쌍 목록 본 :=새
n-ary 트리를 나타내는 tree라는 값의 2D 목록과 color라는 값의 또 다른 목록이 있다고 가정합니다. 트리는 인접 목록으로 표시되며 루트는 트리[0]입니다. i번째 노드의 특성 - tree[i]는 자식과 부모입니다. color[i]는 해당 색상입니다. 루트가 N에 있는 하위 트리의 모든 노드가 고유한 색상을 갖는 경우 노드 N을 특수라고 부릅니다. 이 트리가 있으므로 특수 노드의 수를 찾아야 합니다. So, if the input is like tree = [ [1,2], &nbs
두 개의 값 p와 q가 있다고 가정하고 점이 균일하게 배치된 p 행과 q 열이 있는 그리드에서 생성할 수 있는 고유한 정사각형의 수를 찾아야 합니다. 답이 매우 크면 결과는 mod 10^9 + 7을 반환합니다. 이 문제에서 정사각형은 정사각형의 4개의 꼭짓점을 형성하는 4개의 점의 집합입니다. 정사각형의 변의 길이는 동일해야 하며 항상 그리드의 축과 정렬될 필요는 없습니다. 따라서 입력이 p =4, q =4와 같으면 출력은 20이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − r에서 c의 최소 범위에 있는 i
소문자와 다른 정수 j로 구성된 문자열 i가 있다고 가정합니다. i의 크기와 같고 사전순으로 i보다 작거나 같으며 j보다 큰 연속 등호 문자가 없는 문자열이 몇 개 있는지 알아내야 합니다. 답은 10 ^ 9 + 7로 Mod 결과를 찾아 계산해야 합니다. 따라서 입력이 i =app, j =2와 같으면 출력은 405가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − j <=0이면 0 반환 m :=10 ^ 9 + 7 n :=i의 크기 nums :=s에 있는 각 문자에 대한 (문자의 유니코드