n개의 주문 목록이 있다고 가정하고 각 주문에는 픽업 및 배달 서비스가 있습니다. 우리는 delivery[i]가 항상 픽업[i] 이후에 오도록 모든 유효한 픽업/배달 가능한 시퀀스를 계산해야 합니다. 답변이 매우 클 수 있으므로 10^9 + 7을 모듈로 반환합니다. 따라서 입력이 2와 같으면 출력은 6이 됩니다. 가능한 모든 순서는 (P1,P2,D1,D2), (P1,P2,D2,D1), (P1,D1,P2,D2)입니다. , (P2,P1,D1,D2), (P2,P1,D2,D1) 및 (P2,D2,P1,D1). 그리고 Pickup 2가 De
하나의 숫자 배열이 있다고 가정하고 원하는 순서대로 주어진 숫자 중 일부를 연결하여 형성할 수 있는 3의 가장 큰 배수를 찾아야 합니다. 답변이 매우 클 수 있으므로 문자열로 만드십시오. 응답이 없으면 빈 문자열을 반환합니다. 따라서 입력이 [7,2,8]과 같으면 출력은 87이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 2D 배열 d를 정의하면 3개의 행이 있습니다. 배열 숫자 정렬 합계 :=0 for initialize i :=0, i <자릿수, 업데이트(i 1 증가), do−
이진 트리 루트가 있다고 가정하고 BST(Binary Search Tree)이기도 한 하위 트리의 모든 노드의 최대 합을 찾아야 합니다. 따라서 입력이 다음과 같으면 그러면 출력은 20이 됩니다. 이것은 선택된 BST에 있는 모든 노드의 합입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − Data라는 블록 하나를 생성합니다. 여기에는 sz, maxVal, minVal, ok, sum과 같은 일부 멤버가 포함됩니다. 또한 이 순서(sz, minVal, maxVal, ok 및 합계를 0으로 설정)를 취하는 데이
n개의 꼭짓점으로 구성된 하나의 무방향 트리가 있다고 가정합니다. 정점은 1에서 n까지 번호가 지정됩니다. 이제 개구리는 정점 1에서 점프하기 시작합니다. 개구리는 현재 정점에서 방문하지 않은 다른 정점이 인접해 있으면 1초 안에 다른 정점으로 점프할 수 있습니다. 개구리는 방문한 정점으로 돌아갈 수 없습니다. 개구리가 여러 정점으로 이동할 수 있는 경우 무작위로 그 중 하나로 이동합니다. 확률이 같으면 개구리가 방문하지 않은 정점으로 점프할 수 없을 때 같은 정점에서 영원히 점프합니다. 트리는 에지의 배열로 제공됩니다. t초
n명의 엔지니어가 있다고 가정합니다. 그것들은 1에서 n까지 번호가 매겨져 있으며 우리는 또한 속도와 효율성의 두 가지 배열을 가지고 있습니다. 여기에서 속도[i]와 효율성[i]은 i번째 엔지니어의 속도와 효율성을 나타냅니다. 최대 k명의 엔지니어로 구성된 팀의 최대 성능을 찾아야 합니다. 답은 매우 클 수 있으므로 모듈로 10^9 + 7을 반환합니다. 여기에서 팀의 성과는 엔지니어의 속도에 엔지니어의 최소 효율성을 곱한 값입니다. 따라서 입력이 n =6, 속도 =[1,5,8,2,10,3], 효율 =[9,7,2,5,4,3], k
크기가 다른 3n 조각의 피자가 있다고 가정하면 나와 내 두 친구는 다음과 같이 피자 조각을 가져갈 것입니다. - 피자 조각을 선택하겠습니다. 내 친구 Amal이 내가 선택한 것의 시계 반대 방향으로 다음 슬라이스를 고를 것입니다. 내 친구 Bimal이 내가 선택한 시계 방향으로 다음 슬라이스를 고를 것입니다. 피자 조각이 더 이상 없을 때까지 이 단계를 반복합니다. 피자 조각의 크기는 시계 방향의 원형 배열 조각으로 표시됩니다. 내가 가질 수 있는 슬라이스 크기의 가능한 최대 합을 찾아야 합니다. 따라
문자열 s가 있다고 가정하면 s의 가장 긴 행복한 접두사를 찾아야 합니다. 문자열은 접미사이기도 한 비어 있지 않은 접두사(자체 제외)인 경우 행복한 접두사라고 합니다. 그런 행복한 접두사가 없으면 단순히 빈 문자열을 반환합니다. 따라서 입력이 madam과 같으면 출력은 m이 되고 자신을 제외한 4개의 접두사가 있습니다. 이들은 m, ma, mad, mada 및 m, am, dam, adam과 같은 4개의 접미사입니다. 접미사이기도 한 가장 큰 접두사는 m으로 지정됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. −
두 개의 문자열 s1과 s2가 있다고 가정합니다. 이 문자열의 크기는 n이고, 악이라는 또 다른 문자열도 있습니다. 좋은 문자열의 수를 찾아야 합니다. 문자열은 크기가 n이고 알파벳순으로 s1보다 크거나 같으며 알파벳순으로 s2보다 작거나 같으며 하위 문자열로 악이 없을 때 좋음이라고 합니다. 답은 매우 클 수 있으므로 모듈로 10^9 + 7을 반환합니다. 따라서 입력이 n =2, s1 =bb, s2 =db, evil =a인 경우 b로 시작하는 25개의 좋은 문자열이 있으므로 출력은 51이 됩니다. bb, bc, bd, ...
요리사가 있다고 가정해 봅시다. 그리고 그는 n개의 요리에 대한 만족도에 대한 데이터를 수집했습니다. 요리사는 1 단위 시간에 모든 요리를 요리할 수 있습니다. 요리의 유사 시간 계수는 실제로 걸리는 시간입니다. 이전 요리를 포함하여 해당 요리에 만족도를 Sotime[i]*satisfaction[i]를 곱하여 요리합니다. 요리사가 요리를 준비한 후 얻을 수 있는 Like-time 계수의 최대 합을 찾아야 합니다. 요리는 어떤 순서로든 준비할 수 있으며 요리사는 이 최대 가치를 얻기 위해 일부 요리를 버릴 수 있습니다. 따라서
Amal과 Bimal이 돌 더미를 가지고 놀고 있다고 가정합니다. 여러 개의 스톤이 일렬로 배열되어 있으며 각 스톤에는 StoneValue라는 배열에 지정된 숫자인 관련 값이 있습니다. Amal과 Bimal이 번갈아가며 Amal을 먼저 시작합니다. 각 플레이어의 차례에 해당 행에 남아 있는 첫 번째 돌에서 1, 2 또는 3개의 돌을 가져올 수 있습니다. 각 플레이어의 점수는 가져온 스톤 값의 합계입니다. 처음에 점수는 0입니다. 게임의 목표는 가장 높은 점수로 끝나는 것이며 승자는 가장 높은 점수를 얻은 플레이어이며 동점이 될
크기가 n x 3인 격자가 있고 격자의 각 셀을 세 가지 색상 중 정확히 하나로 칠하려고 한다고 가정합니다. 색상은 빨간색, 노란색 또는 녹색입니다. 이제 두 개의 인접한 셀이 동일한 색상을 갖지 않는다는 제약 조건이 있습니다. 그리드의 행 수는 n입니다. 우리는 이 격자를 칠할 수 있는 방법의 수를 찾아야 합니다. 답은 매우 클 수 있으므로 모듈로 10^9 + 7을 반환합니다. 따라서 입력이 1과 같으면 출력은 12가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − m =1^9 + 7 add() 함수
배열 A의 배열 요소를 인쇄하는 데 사용되는 프로그램이 있지만 프로그램에 약간의 실수가 있다고 가정합니다. 그 프로그램에서 각 요소 뒤에 공백이 없었습니다. 그래서 우리가 하나의 인쇄된 문자열을 가지고 있다면, 배열을 다시 생성할 수 있습니까? 배열 요소가 1에서 k 범위에 있다는 것을 알고 있습니다. 문자열 s와 정수 k가 주어집니다. 어레이를 복원할 수 있는 방법의 수를 찾아야 합니다. 답은 매우 클 수 있으므로 모듈로 10^9 + 7을 반환합니다. 따라서 입력이 S =1318 및 k =2000과 같으면 출력은 8이 됩니다.
nums라는 배열과 정수 k가 있다고 가정하면 해당 배열의 비어 있지 않은 부분 시퀀스의 최대 합을 찾아야 하므로 부분 시퀀스의 모든 두 개의 연속 숫자 nums[i] 및 nums[j], 여기서 i
n명의 사람과 1에서 40까지 레이블이 지정된 40가지 다른 유형의 모자가 있다고 가정합니다. 이제 hats라고 하는 2D 목록이 제공됩니다. 여기서 hats[i]는 모든 모자 목록입니다. i 번째 사람이 선호합니다. 우리는 n명의 사람들이 서로 다른 모자를 쓰는 방법의 수를 찾아야 합니다. 답은 매우 클 수 있으므로 모듈로 10^9 + 7을 반환합니다. 따라서 입력이 [[4,6,2],[4,6]]과 같으면 출력은 4가 됩니다. 선택할 수 있는 4가지 방법이 있으므로 [4,6], [6, 4], [2,4], [2,6]. 이 문제를
mat라고 하는 하나의 m * n 행렬과 정수 k가 있다고 가정하고 mat에는 내림차순으로 정렬된 행이 있습니다. 배열을 형성하기 위해 각 행에서 정확히 하나의 요소를 선택할 수 있습니다. 가능한 모든 배열 중에서 K번째로 작은 배열 합을 찾아야 합니다. 따라서 입력이 mat =[[1,3,11],[2,4,6]]와 같은 경우 1 3 1 1 2 4 6 k =5이면 출력은 7이 됩니다. 각 행에서 하나의 요소를 선택할 때 처음 k개의 가장 작은 합은 [1,2], [1,4], [3,2], [3,4]입니다.
문자열 S와 T가 있다고 가정합니다. T와 동일한 S의 고유한 시퀀스 수를 계산해야 합니다. 우리는 문자열의 하위 시퀀스가 나머지 문자의 상대적 위치를 방해하지 않고 문자 중 일부를 제거하여(없을 수 있음) 원래 문자열에서 형성된 새로운 문자열이라는 것을 알고 있습니다. (예:ACE는 ABCDE의 하위 시퀀스이고 AEC는 그렇지 않음). 입력 문자열이 baallalloonnn 및 balloon이면 36가지 다른 방법으로 선택할 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=s의 크기, m :
바이너리 트리가 있다고 가정합니다. 반복적 접근을 사용하여 이 트리의 사후 순회를 찾아야 합니다. 트리가 다음과 같다면 - 그러면 출력은 다음과 같습니다. [9,15,7,10,-10] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 루트가 null이면 빈 배열을 반환합니다. ret 배열 생성 stack :=[root, 0] 쌍으로 스택 정의 스택이 비어 있지 않은 동안 - node :=스택의 맨 위, 스택에서 요소 삭제 노드 쌍의 두 번째 값이 0이면 현재 :=노드 쌍의 첫 번째 값
C++에서 Set 및 MultiSet은 모두 쉽게 액세스하고 삽입할 수 있도록 데이터를 저장하는 데 사용되는 데이터 구조 유형입니다. 이 두 데이터 구조의 특성을 기반으로 Set과 MultiSet을 구분할 수 있습니다. 다음은 Set과 MultiSet의 중요한 차이점입니다 - Sr. 아니요. 키 설정 멀티세트 1 정의 C++에서 세트는 데이터를 키 값 쌍으로 저장하고 각 값 요소가 고유해야 하는 연관 컨테이너 유형으로 정의할 수 있습니다. 이는 해당 요소의 값이 이를 식별하기 때문입니다. 반면에 MultiSet은 C++ STL
C++에서 Set 및 UnOrderSet은 모두 쉽게 액세스하고 삽입할 수 있도록 데이터를 저장하는 데 사용되는 데이터 구조 유형입니다. 이 두 데이터 구조의 특성을 기반으로 Set과 UnOrderSet을 구분할 수 있습니다. 다음은 Set과 UnOrderSet의 중요한 차이점입니다 - Sr. 아니요. 키 설정 UnorderSet 1 정의 C++에서 세트는 데이터를 키 값 쌍으로 저장하고 각 값 요소가 고유해야 하는 연관 컨테이너 유형으로 정의할 수 있습니다. 이는 해당 요소의 값이 이를 식별하기 때문입니다. 반면에 UnOrd
정렬된 배열 arr와 대상 값이 있다고 가정하고 대상이 발견되면 인덱스를 찾아야 합니다. 그것이 없으면 순서대로 삽입되었을 때의 인덱스를 반환합니다. 따라서 입력이 [1,3,4,6,6]이고 target =5이면 인덱스 3에 5를 삽입할 수 있으므로 출력은 3이 되므로 배열은 [1,3, 4,5,6,6] 이 문제를 해결하기 위해 다음 단계를 따르겠습니다- n :=A의 크기 n <1이면 - 0 반환 낮음 :=0, 높음 :=n - 1 낮음 <=높음, 수행 - 중간 :=낮음 + (높음 - 낮음) /2