크기가 m x n인 그리드라고 하는 하나의 2D 문자 배열이 있다고 가정합니다. 내부에서 사이클을 감지할 수 있는지 여부를 확인해야 합니다. 여기서 사이클은 동일한 위치에서 시작하고 끝나는 그리드에서 길이가 4 이상인 경로입니다. 현재 셀의 값이 같으면 4방향(상,하,좌,우)으로 이동할 수 있으며, 일부 셀을 다시 방문할 수 없습니다. 따라서 입력이 다음과 같으면 m m m p m k m m m m s m f t m m 녹색 셀이 주기를 형성하고 있기 때문에 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음
0에서 n - 1까지 번호가 매겨진 n개의 꼭짓점을 포함하는 그래프가 있다고 가정합니다. 그래프는 방향이 없으며 각 모서리에는 가중치가 있습니다. 그래프는 세 가지 유형의 가중치를 가질 수 있으며 각 가중치는 특정 작업을 나타냅니다. 그래프를 횡단할 수 있는 두 사람, 즉 Jack과 Casey가 있습니다. 간선의 가중치가 1인 경우 Jack은 그래프를 순회할 수 있고, 가중치가 2인 경우 Casey는 그래프를 순회할 수 있으며, 간선의 가중치가 3인 경우 둘 다 그래프를 순회할 수 있습니다. 그래프를 둘 다 순회할 수 있도록 하려면
두 개의 숫자 문자열 s와 t가 있다고 가정하고 다음 작업을 여러 번 사용하여 문자열 s에서 t로 변환하려고 합니다. 1. s에서 비어 있지 않은 부분 문자열을 선택하고 문자가 오름차순으로 정렬되도록 제자리에서 정렬합니다. 문자열 s를 문자열 t로 변환할 수 있는지 여부를 확인해야 합니다. 45963을 사용하여 s를 t로 변환할 수 있으므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 장소 :=기본값 유형이 목록인 지도 s에서 0까지의 범위 크기에 있는 i에 대해 키 :=s[i]
여러 개의 돌이 연속적으로 배치되어 있고 이러한 각 돌에 배열 stoneValue에 지정된 관련 번호가 있다고 가정합니다. 각 라운드에서 Amal은 행을 두 부분으로 나눈 다음 Bimal은 이 부분의 모든 돌 값의 합인 각 부분의 값을 계산합니다. Bimal은 최대값을 가진 부분을 버리고 나머지 부분의 값만큼 Amal의 점수를 높인다. 두 부품의 값이 같을 때 Bimal은 Amal이 버릴 부품을 결정하도록 합니다. 다음 라운드는 나머지 부분으로 시작됩니다. 스톤이 하나만 남으면 게임이 종료됩니다. Amal이 얻을 수 있는 최대 점수
nums라는 배열과 다른 값 k가 있다고 가정합니다. 한 번의 작업으로 합계가 k인 숫자에서 두 개의 요소를 선택하고 배열에서 제거할 수 있습니다. 어레이에서 수행할 수 있는 최대 작업 수를 찾아야 합니다. 따라서 입력이 nums =[8,3,6,1,5] k =9와 같으면 합이 9인 [3,6]을 삭제할 수 있으므로 출력은 2가 됩니다. 그런 다음 [8,1 ] 합도 9입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − counter :=숫자로 표시된 각 항목의 빈도를 보유하는 맵 res :=0 카운터의 각 숫자에 대해 다
n개의 항목이 있는 baseCost라는 두 개의 배열이 있다고 가정하고 base를 선택할 수 있고 m개의 항목이 있는 toppingCosts는 토핑을 선택하고 대상 값도 가질 수 있습니다. 디저트를 만들려면 이 규칙을 따라야 합니다. 정확히 하나의 베이스가 있어야 합니다. 하나 이상의 토핑을 추가하거나 토핑을 전혀 추가하지 않을 수 있습니다. 각 토핑 유형은 최대 2개입니다. 여기서 baseCosts[i]는 i번째 아이스크림 베이스의 가격을 나타냅니다. toppingCosts[i]는 i번째 토핑 중 하나의 가격
숫자 n이 있다고 가정하고 1에서 n까지의 이진 표현을 하나씩 순서대로 연결하여 이진 문자열의 10진수 값을 찾아야 합니다. 답이 너무 크면 모듈로 10^9 + 7을 반환합니다. 따라서 입력이 n =4와 같으면 출력은 220이 됩니다. 왜냐하면 1에서 4까지의 이진 표현을 연결하면 1 + 10 + 11 + 100 =110111000이 되기 때문에 이것은 이진입니다. 220의 대표자. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=1 m :=10^9+7 2~n 범위의 i에 대해 다음을 수행합니다. ans :=sh
nums1과 nums2라는 두 개의 배열이 있다고 가정합니다. 배열의 값은 1에서 6(포함) 사이입니다. 한 번의 연산으로 배열의 값을 1에서 6 사이의 값으로 업데이트할 수 있습니다. nums1의 값 합계를 nums2의 값 합계와 같게 만드는 데 필요한 최소 연산 수를 찾아야 합니다. 가능하지 않으면 -1을 반환해야 합니다. 따라서 입력이 nums1 =[1,5,6], nums2 =[4,1,1]과 같으면 nums2를 [4,1,1]에서 [4, 1,6] 첫 번째 작업에서 [4,2,6] 두 번째 작업에서 nums1과 동일하게 만듭니다.
배열 num이 있고 내림차순으로 정렬되어 있다고 가정합니다. result[i]가 nums[i]와 배열의 다른 모든 요소 간의 절대 차이의 합이 되도록 nums와 길이가 같은 result라는 배열을 만들어야 합니다. 따라서 입력이 nums =[5,7,12]와 같으면 출력은 [9, 7, 12]가 됩니다. |5-5| + |5-7| + |5-12| =0+2+7 =9 |7-5| + |7-7| + |7-12| =2+0+5 =7 |5-12| + |7-12| + |12-12| =7+5+0 =12 이 문제를 해결하기 위해 다음 단계를 따릅니
배열 nums가 있다고 가정하고 램프는 i
Amal과 Bimal이 게임을 하고 있고 Amal의 차례가 먼저라고 가정합니다. 게임은 아래와 같습니다 - 한 더미에 n개의 돌이 있습니다. 각 플레이어는 더미에서 돌을 가져와 해당 돌의 위치에 따라 점수를 받을 수 있습니다. Amal과 Bimal은 돌의 가치를 다르게 평가할 수 있습니다. 길이가 같은 두 개의 배열 A_Values와 B_Values가 있습니다. 각 A_Values[i] 및 B_Values[i]는 Amal과 Bimal이 각각 i번째 돌을 평가하는 방법을 나타냅니다. 여기에서 점수가 최대인 사람은 모든 돌을 제거한
문자열 형식의 숫자 n이 있다고 가정합니다. 합이 n이 되도록 최소 십진수가 필요함을 찾아야 합니다. 10진수는 0 또는 1의 자릿수를 갖는 10진수입니다. 따라서 입력이 n =132와 같으면 132는 3개의 십진수(10 + 11 + 111)의 합이기 때문에 출력은 3이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 결과:=1 n의 각 i에 대해 다음을 수행합니다. 내가 {0,1}에 없으면 result :=결과의 최대값 및 i 반환 결과 예시 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − def
숫자 n이 있다고 가정하면 n을 3의 고유한 거듭제곱의 합으로 나타낼 수 있는지 여부를 확인해야 합니다. y =3^x인 정수 x가 존재하는 경우 정수 y는 3의 거듭제곱이라고 합니다. 따라서 입력이 n =117과 같으면 117 =3^4 + 3^3 + 3^2 + =81 + 27 + 9이므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 16에서 0 사이의 i에 대해 1 감소, 수행 =3^i이면 n :=n - 3^i 0이면 거짓을 반환 참을 반환 예시 이
Stones[i]가 왼쪽에서 i번째 돌의 값을 나타내는 배열이 있다고 가정합니다. 두 친구 Amal과 Bimal은 이 돌로 턴제 게임을 다시 하고 Amal은 항상 먼저 시작합니다. n개의 돌이 일렬로 배열되어 있습니다. 각 플레이어는 행에서 가장 왼쪽에 있는 돌이나 가장 오른쪽에 있는 돌을 제거하고 행에 있는 나머지 돌 값의 합과 동일한 점수를 얻을 수 있습니다. 누가 더 높은 점수를 얻을 것입니다 승리합니다. 이제 Bimal은 자신이 항상 이 게임에서 지는 것을 알았고 점수 차이를 최소화하기로 결정했습니다. Amal의 목표는 점수
문자열 s가 있다고 가정합니다. 우리는 모든 부분 문자열의 아름다움의 합을 찾아야 합니다. 문자열의 아름다움은 실제로 가장 자주 사용되는 문자와 가장 자주 사용되지 않는 문자 간의 빈도 차이입니다. 따라서 문자열이 abaacc이면 빈도는 3 - 1 =2입니다. 따라서 입력이 s =xxyzy와 같으면 아름다움이 0이 아닌 부분 문자열이 [xxy,xxyz,xxyzy,xyzy,yzy]이므로 출력은 5가 됩니다. 각각의 아름다움 값은 1입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 해상도:=0 범위 0에서 s
num이라는 배열(양수 값만 포함)이 있고 고유한 요소를 포함하는 하위 배열을 지우고 싶다고 가정합니다. 우리는 하위 배열 요소의 합계인 점수를 얻을 것입니다. 정확히 하나의 하위 배열을 지워서 얻을 수 있는 최대 점수를 찾아야 합니다. 따라서 입력이 nums =[6,3,2,3,6,3,2,3,6]과 같으면 출력은 11이 됩니다. 여기서 최적의 하위 배열은 [6,3,2] 또는 [2,3,6]이므로 합계는 11입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 본 :=새 지도 ans :=합계 :=0 l :=0 각 인덱스 r
nums라는 배열과 두 개의 값 제한 및 목표가 있다고 가정합니다. |nums[i]| 때문에 배열이 특별합니다. <=모든 i에 대한 제한은 0에서 배열의 크기 - 1까지입니다. 배열의 합이 목표와 같게 하려면 삽입할 요소의 최소 수를 찾아야 합니다. 배열 요소는 제한 값을 초과할 수 없습니다. 따라서 입력이 nums =[2,-2,2], limit =3, goal =-4와 같으면 출력은 2가 됩니다. 왜냐하면 우리는 2(-3)를 더할 수 있기 때문입니다. [2,-2,2,-3,-3] 이 문제를 해결하기 위해 다음 단계를 따릅니다.
nums라는 배열과 다른 값 k가 있다고 가정합니다. 우리는 인덱스 0에 있습니다. 한 번의 이동으로 배열의 경계를 벗어나지 않고 최대 k 단계 오른쪽으로 이동할 수 있습니다. 배열의 최종 인덱스에 도달하고 싶습니다. 점프를 위해 우리는 점수를 얻습니다. 이것은 배열에서 방문한 각 인덱스 j에 대한 모든 nums[j]의 합입니다. 얻을 수 있는 최대 점수를 찾아야 합니다. 따라서 입력이 nums =[1,-2,-5,7,-6,4] k =2와 같으면 출력은 10이 됩니다. 왜냐하면 이 시퀀스 [1, -2, 7, 4] 그러면 최대 점수가
하나의 무방향 가중치 연결 그래프가 있다고 가정합니다. 그래프에는 n개의 노드가 있으며 1에서 n까지 레이블이 지정됩니다. 시작에서 끝으로의 경로는 [z0, z1, z2, ..., zk]와 같은 노드의 시퀀스입니다. 여기에서 z0은 시작 노드이고 zk는 끝 노드이며 zi와 zi+1 사이에 에지가 있습니다. 여기서 0 <=나는 <=k-1. 경로의 거리는 경로의 가장자리에 있는 가중치 값의 합입니다. dist(x)가 노드 n과 노드 x로부터의 최단 거리를 나타냅니다. 제한된 경로는 0 <=i dist(zi+1)도 충족하는 특수 경로입
로 표시된 부분 문자열이 주어진다고 가정합니다. 고유한 부분 문자열을 찾아 이 부분 문자열의 수를 출력으로 반환해야 합니다. 따라서 입력이 s =prrstvt와 같으면 출력은 26이 됩니다. 고유한 하위 문자열은 - pr, rrs, st, rr, tv, rstv, stvt, prrstv, prrstvt, rrstvt, s, prrst, stv , rrstv, rst, v, tvt, rstvt, r, rs, vt, t, prr, p, rrst, 및 prrs. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 방문함:=새 지