nums 배열이 있고 requests[i] =[start_i, end_i]인 요청이라는 다른 배열이 있다고 가정합니다. 이는 i번째 요청이 nums[start_i] + nums[start_i+1] + ... + 숫자[end_i-1] + 숫자[end_i]. num의 모든 순열 중에서 모든 요청의 최대 합계를 찾아야 합니다. 답은 매우 클 수 있으므로 모듈로 10^9+7을 반환합니다. 따라서 입력이 nums =[10,20,30,40,50] requests =[[1,3],[0,1]]과 같으면 출력은 190이 됩니다. ,50,40,20,
배열 num과 다른 값 p가 있다고 가정하고 나머지 값의 합이 p로 나눌 수 있도록 가장 작은 하위 배열(전체 배열이 아님)을 제거합니다. 제거해야 하는 가장 작은 부분배열의 길이를 찾아야 합니다. 그런 부분배열이 없으면 -1을 반환합니다. 따라서 입력이 nums =[8,2,6,5,3] p =7과 같으면 출력은 1이 됩니다. 왜냐하면 3을 제거하면 총합은 21이 되고 7로 나눌 수 있기 때문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ans :=무한대 s :=(nums에 있는 모든 요소의 합) mod p d :
문자열 s가 있다고 가정하고 주어진 문자열을 분할할 수 있는 고유한 하위 문자열의 최대 수를 찾아야 합니다. 문자열 s를 비어 있지 않은 하위 문자열 목록으로 분할하여 하위 문자열을 연결하여 원래 문자열을 형성할 수 있습니다. 그러나 부분 문자열을 모두 같도록 분할해야 합니다. 따라서 입력이 s =pqpqrrr과 같으면 출력은 [p, q, pq, r, rr]처럼 분할할 수 있기 때문에 5가 됩니다. [p, q, p, q, r, rr]처럼 분할하면 p와 q가 여러 번 있기 때문에 유효하지 않습니다. 이 문제를 해결하기 위해 다음
m x n 차수의 행렬이 있다고 가정합니다. 처음에는 왼쪽 상단 모서리 셀(0, 0)에 있으며 각 단계에서 행렬에서 오른쪽 또는 아래쪽으로만 이동할 수 있습니다. 이제 왼쪽 위 모서리 셀(0, 0)에서 오른쪽 아래 모서리 셀(m-1, n-1)까지 가능한 모든 경로 중에서 음이 아닌 최대 곱이 있는 경로를 찾아야 합니다. 답이 너무 크면 음수가 아닌 최대 곱 모듈로 10^9+7을 반환합니다. 따라서 입력이 다음과 같으면 2 -4 2 2 -4 2 4 -8 2 경로가 색상이 지정된 경로이므로 출력은 256이 됩니다. 2 -4
rowSum[i]에는 i번째 행에 있는 요소의 합이 있고 colSum[j]에는 2D 행렬의 j번째 열에 있는 요소의 합이 있는 음수가 아닌 값을 가진 두 개의 배열 rowSum 및 colSum이 있다고 가정합니다. 주어진 rowSum 및 colSum 값을 만족하는 크기(rowSum 크기 x colSum 크기)의 음이 아닌 값을 가진 행렬을 찾아야 합니다. 따라서 입력이 rowSum =[13,14,12] colSum =[9,13,17]과 같으면 출력은 9 4 0 0 9 5 0 0 12 이 문제를 해결하기 위해 다음 단계를
n개의 도시가 있고 이들 도시를 연결하는 도로가 있다고 가정합니다. 각 도로[i] =[u, v]는 도시 u와 v 사이에 양방향 도로가 있음을 나타냅니다. 이제 네트워크 순위는 각 도시에 직접 연결된 도로의 총 수입니다. 도로가 두 도시와 직접 연결되어 있는 경우에는 한 번만 계산됩니다. 그리고 네트워크의 최대 네트워크 순위는 다른 도시의 모든 쌍의 최대 네트워크 순위입니다. 따라서 다른 도로가 있는 경우 전체 네트워크의 최대 네트워크 순위를 찾아야 합니다. 따라서 입력이 다음과 같으면 도시 1과 2를 연결하는 5가지 다른 방
i번째 점(0에서 n-1까지)이 위치 x =i에 있는 선에 n개의 점이 있다고 가정하면 각각 다음과 같이 겹치지 않는 정확히 k개의 서로 다른 선분을 그릴 수 있는 방법의 수를 찾아야 합니다. 세그먼트는 두 개 이상의 점을 포함합니다. 각 선분의 끝점에는 정수 좌표가 있어야 합니다. k개의 선분은 주어진 n개의 점을 모두 포함할 필요는 없으며 끝점을 공유할 수 있습니다. 답이 너무 크면 결과 모드 10^9+7을 반환합니다. 따라서 입력이 n =4 k =2와 같으면 출력은 5가 됩니다. 다섯 가지 가능성 [(0 to 2),(2 to
숫자만 있는 문자열 s가 있고 두 개의 값과 b가 있다고 가정합니다. 다음 두 작업 중 하나를 s −에 원하는 횟수와 순서로 적용할 수 있습니다. s(0-인덱싱)의 홀수 위치에 있는 모든 항목에 a를 추가합니다. 숫자가 9인 경우 무언가를 추가하면 0으로 다시 순환됩니다. 를 오른쪽으로 b만큼 회전합니다. 따라서 위의 연산을 s에 여러 번 적용하여 얻을 수 있는 사전식으로 가장 작은 문자열을 찾아야 합니다. 따라서 입력이 s =5323 a =9 b =2와 같으면 다음을 따르기 때문에 출력은 2050이 됩니다. 회
score[i]와 age[i]는 농구 경기에서 i번째 선수의 점수와 나이를 나타내는 두 개의 목록에서 점수와 연령이라는 두 개의 목록이 있다고 가정합니다. 전체 점수가 가장 높은 팀을 선택하려고 합니다. 여기서 팀 점수는 팀의 모든 플레이어 점수의 합계입니다. 그러나 우리는 게임에서 충돌을 허용하지 않습니다. 어린 선수가 나이가 많은 선수보다 점수가 엄격하게 높은 경우 충돌이 존재합니다. 따라서 입력이 점수 =[5,7,9,14,19], 연령 =[5,6,7,8,9]인 경우 모든 플레이어를 선택할 수 있으므로 출력은 54가 됩니다.
높이라고 하는 m x n 차수의 2D 행렬이 있다고 가정합니다. height[i][j]는 셀(i, j)의 높이를 나타냅니다. 우리가 (0, 0) 셀에 있다면 오른쪽 아래 셀 (m-1, n-1)로 이동하려고 합니다. 위, 아래, 왼쪽 또는 오른쪽으로 이동할 수 있으며 최소한의 노력이 필요한 경로를 찾고 싶습니다. 이 문제에서 루트 노력은 경로의 연속된 두 셀 사이의 최대 절대 높이 차이입니다. 그래서 마지막으로 목적지까지 이동하는 데 필요한 최소한의 노력을 찾아야 합니다. 따라서 입력이 다음과 같으면 2 3 4 4 9 5 6 4
두 개의 문자열 s와 t가 있다고 가정하면 s의 비어 있지 않은 부분 문자열을 선택하고 결과 부분 문자열이 t의 부분 문자열 중 하나가 되도록 단일 문자를 다른 문자로 대체할 수 있는 방법의 수를 찾아야 합니다. 위의 조건을 만족하는 부분 문자열의 수를 찾아야 합니다. 따라서 입력이 s =sts t =tsts와 같으면 출력은 6이 됩니다. 다음은 1 문자가 다른 s와 t의 부분 문자열 쌍이기 때문입니다. - (sts, tsts), (sts, tsts), (sts, tsts), (sts, tsts), (sts, tsts), (st
숫자 n이 있다고 가정하고 모음(a, e, i, o, u)으로만 구성된 크기가 n인 문자열의 수를 찾아야 하고 사전순으로 정렬되어 있습니다. 모든 유효한 인덱스 i에 대해 s[i]가 알파벳에서 s[i+1]과 같거나 그 앞에 올 때 문자열 s가 사전순으로 정렬된다고 말할 수 있습니다. 따라서 입력이 n =2와 같으면 [aa, ae, ai, ao, au, ee, ei와 같은 문자열이 많기 때문에 출력은 15가 됩니다. , eo, eu, ii, io, iu, oo, ou, uu]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. −
문자열 s가 있다고 가정하고 s에 동일한 빈도를 갖는 두 개의 다른 문자가 없으면 s는 양호하다고 합니다. s를 좋은 문자열로 만들기 위해 삭제해야 하는 최소 문자 수를 찾아야 합니다. 따라서 입력이 s =ssstttuu와 같으면 출력은 2가 됩니다. 왜냐하면 하나의 t를 삭제하면 3개의 , 2개의 t 및 2개의 u가 있고 다시 삭제하기 때문입니다. u 또는 u 중 하나를 사용하여 좋게 만듭니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − val :=s의 각 문자의 빈도를 포함하는 새 지도 res :=0 numlist
nums라는 배열과 다른 값 x가 있다고 가정합니다. 한 번의 작업으로 배열에서 가장 왼쪽 또는 가장 오른쪽 요소를 삭제하고 x에서 값을 뺄 수 있습니다. x를 정확히 0으로 줄이는 데 필요한 최소 연산 수를 찾아야 합니다. 불가능하면 -1을 반환합니다. 따라서 입력이 nums =[4,2,9,1,4,2,3] x =9와 같으면 출력은 3이 됩니다. 처음에는 가장 왼쪽에 있는 요소 4를 삭제해야 하므로 배열은 [2,9,1,4,2,3]이고 x는 5가 되고 가장 오른쪽에 있는 요소 3을 제거하므로 배열은 [2,9,1,4,2]이고 x =2
두 개의 값 n과 k가 있다고 가정합니다. 길이가 n이고 숫자 값이 k인 사전식에서 가장 작은 문자열을 찾아야 합니다. 소문자의 숫자 값은 알파벳에서 해당 위치(1부터 시작)이므로 문자 a의 숫자 값은 1, 문자 b의 숫자 값은 2 등입니다. 그리고 소문자로 구성된 문자열의 숫자 값은 해당 문자의 숫자 값의 합입니다. 따라서 입력이 n =4 k =16과 같으면 출력은 aaam이 됩니다. 여기서 숫자 값은 1+1+1+13 =16이고 이것은 값과 길이가 다음과 같은 가장 작은 문자열입니다. 4. 이 문제를 해결하기 위해 다음 단계를
num이라는 배열이 있다고 가정합니다. 정확히 하나의 인덱스를 선택하고 해당 인덱스에서 요소를 제거할 수 있습니다. (요소의 인덱스는 제거 후에 변경될 수 있습니다). 홀수 인덱스 값의 합이 짝수 인덱스 값의 합과 같을 때 배열이 공정하다고 말할 수 있습니다. 제거 후 nums가 공정하도록 선택할 수 있는 인덱스 수를 찾아야 합니다. 따라서 입력이 nums =[5,3,7,2]와 같으면 출력은 인덱스 0에서 제거, 배열은 [3,7,2], 짝수 위치 합계:3+2 =5, 홀수 위치 합계 7(공평하지 않음) 인덱스 1에서 제거
회의에 두 가지 유형의 사람들이 있다고 가정합니다. 첫 번째 유형의 사람들은 채식주의 점심을 선호하고 다른 유형은 비채식 점심을 선호합니다. 그러나 패킷 수에는 제한이 있으며 채식주의자가 비채식주의자 패킷을 받거나 그 반대의 경우도 마찬가지입니다. 그들은 그 패킷을 받지 않고 그들이 선호하는 것을 얻을 때까지 기다리지 않을 것입니다. 따라서 두 가지 다른 유형의 패킷과 사람은 채식주의자에 대해 0으로, 비채식주의자에 대해 1로 표시됩니다. 이제 우리는 두 개의 배열을 얻었습니다. 하나는 0과 1로 표시된 n개의 음식 패킷을 포함하고
각각 길이가 m과 n인 두 개의 연결 리스트 L1과 L2가 있다고 가정하고 두 위치 a와 b도 있습니다. L1에서 노드 b로 노드를 제거하고 그 사이에 L2를 병합해야 합니다. 따라서 입력이 L1 =[1,5,6,7,1,6,3,9,12] L2 =[5,7,1,6] a =3 b =6인 경우 출력은 [1, 5, 6, 5, 7, 1, 6, 9, 12] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − head2 :=L2, 온도 :=L2 temp에 다음 노드가 있는 동안 do temp :=다음 temp tail2 :=온도 카운트:=
길이가 짝수인 호출된 num의 배열이 있다고 가정하고 0 <=i <숫자의 크기/2. 따라서 입력이 nums =[4,-2,2,-4]와 같으면 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − cnt :=숫자의 모든 요소와 해당 빈도 값을 포함하는 맵 절대값을 기준으로 정렬된 정렬된 목록 cnt의 각 x에 대해 다음을 수행합니다. cnt[2 * x]이면 거짓을 반환 cnt[2 * x] :=cnt[2 * x] - cnt[x] 참을 반환 예 이해를 돕기 위해 다음
여러 개의 양동이와 x개의 공이 주어졌다고 가정합니다. 볼을 양동이에 넣으면 그 안에 특별한 힘이 작용하여 두 볼 사이의 최소 힘을 최대화하는 방법을 찾아야 합니다. 위치 p와 q의 양동이에 있는 두 볼 사이의 힘은 |p - q|입니다. 우리에게 주어진 입력은 버킷 위치와 볼 x의 수를 포함하는 배열입니다. 우리는 그들 사이의 최소 힘을 찾아야 합니다. 따라서 입력이 pos =[2, 4, 6, 8, 10, 12], x =3과 같으면 출력은 4가 됩니다. 공은 12개의 버킷 배열에서 주어진 위치에 넣을 수 있습니다. 3개의 공