숫자 nums 목록과 각 쿼리에 [x, limit]가 포함된 쿼리 목록이 있다고 가정합니다. 각 쿼리 [x, limit]에 대해 e ≤ limit 및 e XOR x가 최대화되는 요소 e를 nums에서 찾는 목록을 찾아야 합니다. 해당 요소가 없으면 -1을 반환합니다. 따라서 입력이 nums =[3, 5, 9] 쿼리 =[[4, 6],[2, 0]]과 같으면 첫 번째 쿼리와 마찬가지로 출력은 [3, -1]이 됩니다. 숫자로 2 또는 4를 사용할 수 있습니다. 3 ^ 4 =7 동안 5 ^ 4 =3이므로 더 큰 XOR을 생성하는 3을 선택
겹치지 않는 간격 목록이 있다고 가정합니다. 종료 시간을 기준으로 정렬됩니다. 다른 간격 대상이 있습니다. 간격이 여전히 겹치지 않고 정렬되도록 대상을 병합한 후 최종 간격을 찾습니다. 따라서 입력이 간격 =[[1, 15],[25, 35],[75, 90]], 대상 =[10, 30]인 경우 출력은 [[1, 35], [ 75, 90]] 처음 두 간격 [1, 15] 및 [25, 35]가 병합됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − iv의 끝에 대상 삽입 시작 시간을 기준으로 iv 정렬 res :=첫
4 x 4 글자 보드와 단어 목록이 있다고 가정하고 단어당 최대 한 번 셀을 사용하여 인접한 문자 시퀀스에 의해 보드에서 생성될 수 있는 최대 단어 수를 찾아야 합니다(그러나 우리는 다른 말로 셀을 재사용할 수 있음). 위, 아래, 왼쪽, 오른쪽 또는 대각선 방향으로 이동할 수 있습니다. 따라서 입력이 다음과 같으면 m b f d x a y a t z t r q q q 단어 =[bat, far, mat]이면 출력은 3이 됩니다. mat [0,1] → [1,1] → [2,0], bat [0, 2] → [1,1] → [
숫자 nums의 목록이 있다고 가정하고 nums의 (nums[i], nums[j]) 사이에 숫자가 없을 때 두 개의 숫자 nums[i] ≤ nums[j]가 인접한다고 말할 수 있습니다. 우리는 가능한 최소값을 찾아야 합니다 |j - i| nums[j]와 nums[i]가 인접하도록 합니다. 따라서 입력이 nums =[1, -9, 6, -6, 2]와 같으면 출력은 2가 됩니다. 2와 6은 인접하고 서로 2개의 인덱스 떨어져 있다는 것을 알 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 색인 :=새 지도
문자열 s가 있다고 가정하고 회문으로 만드는 데 필요한 최소 인접 스왑 수를 찾아야 합니다. 해결 방법이 없으면 -1을 반환합니다. 따라서 입력이 s =xxyy와 같으면 출력은 2가 됩니다. 가운데 x와 y를 교환하여 문자열이 xyxy가 되도록 한 다음 처음 두 x와 y는 yxxy를 가져오고 이것은 회문입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − util() 함수를 정의합니다. 시간이 걸립니다 본 :=새 지도 s의 각 i에 대해 수행 본[i] :=1 + (존재하는 경우 본[i] 그렇지 않으
두 개의 문자열 s와 t가 있다고 가정하고 t의 모든 문자를 포함하는 s에서 최소 부분 문자열의 크기를 찾아야 합니다. 그러한 하위 문자열이 존재하지 않으면 -1을 반환합니다. 따라서 입력이 s =thegrumpywizardmakes t =wake와 같으면 wake를 포함하는 가장 짧은 부분 문자열이 wizardmake(길이 10)이므로 출력은 10이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − counter :=b의 각 문자의 빈도 시작 :=0 min_subs :=정보 rem :=b의 고유
두 개의 문자열 s와 숫자 t가 있다고 가정하고 문자열에서 숫자를 제거하는 방법을 찾아야 다음과 같이 됩니다. 1. 두 문자열이 동일합니다. 2. 삭제된 숫자의 합이 최소화됩니다. 마지막으로 최소화된 합을 반환합니다. 따라서 입력이 s =41272 t =172와 같으면 첫 번째 문자열에서 4와 2를 제거하여 172를 얻을 수 있으므로 출력은 6이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − lcs() 함수를 정의합니다. 이것은, b, m, n이 걸립니다. table :=크기가 (n + 1) x (m
1차원 선에서 주택의 위치를 나타내는 nums라는 숫자 목록이 있다고 가정합니다. 이제 라인의 아무 곳에나 설치할 수 있는 가로등이 3개 있고 x 위치의 조명이 [x - r, x + r] 범위(포함)의 모든 집에 불을 밝힙니다. 모든 집을 밝히는 데 필요한 가장 작은 r을 찾아야 합니다. 따라서 입력이 nums =[4,5,6,7]과 같으면 출력은 0.5가 됩니다. 램프를 4.5, 5.5 및 6.5에 배치하여 r =0.5가 되도록 할 수 있기 때문입니다. 따라서 이 3개의 조명으로 4개의 집을 모두 밝힐 수 있습니다. 이 문제
0과 1을 저장하는 nums라는 숫자 목록이 있다고 가정합니다. 또 다른 값 k가 있습니다. 이제 모든 1이 0이 되고 모든 0이 1이 되도록 길이가 k인 하위 목록을 뒤집는 작업이 있다고 가정합니다. 숫자를 모두 1에서 0으로 변경하는 데 필요한 최소 연산 수를 찾아야 합니다. 변경할 수 없으면 -1을 반환합니다. 따라서 입력이 nums =[1,1,1,0,0,1,1,1], k =3과 같으면 출력은 2가 됩니다. 처음 세 숫자를 0으로 뒤집은 다음 마지막 세 숫자를 0으로 뒤집습니다. 이 문제를 해결하기 위해 다음 단계를 따릅
이진 문자열 s가 있다고 가정합니다. 이제 접두사를 가져와서 뒤로 이동할 수 있다고 가정합니다. 그런 다음, 동일한 값의 연속 문자가 없도록 뒤집어야 하는 최소 문자 수를 찾으십시오. 따라서 입력이 s =10010101111과 같으면 출력은 2가 됩니다. 접두사 10을 사용할 수 있으므로 뒤로 이동하여 문자열이 01010111110이 되도록 한 다음 세 번째 및 다섯 번째 비트를 오른쪽에서 0으로 뒤집습니다. (01010101010). 이 문제를 해결하기 위해 다음 단계를 따릅니다. − as :=S의 크기 N :=S의
일부 동물의 초기 조건을 나타내는 문자열 s가 있다고 가정합니다. 각 동물은 세 가지 값 중 하나를 취할 수 있습니다. L은 동물이 왼쪽으로 이동했음을 나타냅니다. R은 동물이 오른쪽으로 이동했음을 나타냅니다. @는 동물이 가만히 서 있음을 나타냅니다. 동물이 반대 방향에서 힘을 받지 않는 한 한 방향으로 움직이는 동물은 다른 동물을 픽업합니다. 그러면 가만히 있을 것입니다. 동물이 움직임을 멈출 때 각 동물의 방향을 찾아야 합니다. 따라서 입력이 s =@@L@R@@@@L과 같으면 출력은 LLL@RRRLLL이 됩니다. 이 문제를
두 개의 숫자 목록이 있다고 가정합니다. 하나는 가중치라고 하고 다른 하나는 값이라고 합니다. 이것들은 같은 길이이며, 우리는 또한 capacity와 count라는 두 개의 값을 가지고 있습니다. 여기서 weights[i]와 values[i]는 i번째 항목의 가중치와 값을 나타냅니다. 우리는 최대 용량 무게와 최대 합계 항목 수를 보유할 수 있으며 각 항목의 복사본을 하나만 가져갈 수 있으므로 얻을 수 있는 최대 가치를 찾아야 합니다. 따라서 입력이 weight =[2, 2, 4, 6] values =[15, 15, 20, 3
문자열 s가 있다고 가정합니다. 여는 괄호와 닫는 괄호로만 구성됩니다. 가장 긴 유효(잘 구성된) 괄호 부분 문자열의 길이를 찾아야 합니다. 따라서 입력이 ))(())())와 같으면 유효한 문자열이 (())()이므로 결과는 6이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 스택을 만들고 -1을 삽입하고 다음을 설정합니다. :=0 범위 0에서 스택 길이 – 1에 있는 i의 경우 s[i]가 괄호를 여는 경우 i를 스택에 삽입합니다. 그렇지 않으면 스택이 비어 있지 않고 스택의 맨 위가 -1이
0이 빈 셀을 나타내고 1이 해당 셀의 체스 여왕을 나타내는 이진 행렬이 있다고 가정합니다. 이 보드를 채우고 유효한 nqueen 솔루션을 얻을 수 있는지 여부를 확인해야 합니다. 우리가 알고 있는 바와 같이 n개의 퀸즈 퍼즐은 두 개의 체스 퀸이 서로를 공격할 수 없도록 n × n개의 체스판에 n개의 퀸을 놓아야 합니다. 따라서 입력이 다음과 같으면 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 하나의 솔루션이 −와 같으므로 출력은 True가 됩니다. 1 0 0 0 0
nums라고 하는 숫자 목록과 또 다른 값 k가 있다고 가정하면 최소 k개의 홀수 요소가 있는 가장 긴 증가 부분 수열의 크기를 찾아야 합니다. 따라서 입력이 nums =[12, 14, 16, 5, 7, 8] k =2와 같으면 출력은 3이 됩니다. 최소 2개의 홀수 값이 있는 가장 긴 증가 부분 시퀀스는 [5, 7, 8]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 최고 :=0 dp() 함수를 정의합니다. 이것은 i, j, 홀수, 취해질 것입니다 =k이면 최고 :=최고 및 채택의 최대값 j가
N개의 양수의 목록 번호가 있다고 가정합니다. 이제 목록에서 단일 값을 선택하고 임의의 위치로 이동(교환 아님)할 수 있습니다. 우리는 또한 위치로 전혀 이동할 수 없습니다. 그래서 우리는 목록의 가능한 최대 최종 거듭제곱이 얼마인지 찾아야만 합니까? 우리가 알고 있듯이 목록의 힘은 모든 인덱스 i에 대한 (index + 1) * value_at_index의 합입니다. $$\displaystyle\sum\limits_{i=0}^{n-1} (i+1)\times 목록[i]$$ 따라서 입력이 nums =[6, 2, 3]과 같으면 출력
N개의 울타리를 K개의 다른 색상으로 칠하고 싶다고 가정해 봅시다. 우리는 두 개의 인접한 울타리가 같은 색상을 가지지 않도록 하면서 비용을 최소화하고자 합니다. 따라서 n번째 행과 k번째 열이 n번째 울타리를 k번째 색상으로 칠하는 비용을 나타내는 N x K 행렬이 있는 경우 이 목표를 달성하는 최소 비용을 찾아야 합니다. 따라서 입력이 다음과 같으면 6 4 5 3 2 7 3 4 5 5 4 4 다음 색상 인덱스(첫 번째 울타리부터 시작) - 5 → 2 → 3 → 4를 선택할 수 있으므로 출력은 14가 됩니다. 이
2차원 이진 행렬과 다른 값 k가 있다고 가정합니다. 이제 왼쪽 상단 셀에서 시작하여 오른쪽 하단 셀로 이동해야 합니다. 한 단계에서 우리는 아래로 또는 오른쪽으로만 갈 수 있습니다. 이제 경로의 점수는 경로의 셀에 있는 값의 합계입니다. 점수가 k인 시작 셀에서 끝 셀까지의 경로 수를 찾아야 합니다. 가능한 방법이 많다면 결과 모드 10^9+7을 반환하십시오. 따라서 입력이 다음과 같으면 0 0 1 1 0 1 0 1 0 K =2이면 점수가 2인 경로가 [R,R,D,D], [D,R,R,D], [D,D,R,R], [D이므
소문자 문자열 s가 있다고 가정하면 각 문자가 최대 한 조각으로 나타나도록 s를 가능한 한 많은 조각으로 나누고 파티션의 크기를 목록으로 찾을 수 있습니다. 따라서 입력이 s =momoplaykae와 같으면 문자열이 [momo, p, l, 로 분할되므로 출력은 [4, 1, 1, 4, 1]이 됩니다. ayka, e]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − count :=s에 있는 문자와 해당 문자를 포함하는 맵 out :=새 목록, stk :=빈 스택 길이 :=0 s의 각 문자에 대해 개수
2차원 행렬과 row, col, erow0, ecol0, erow1 및 ecol1과 같은 다른 값이 있다고 가정합니다. 현재 위치가 행렬 [row, col]이고 행렬 [erow0, ecol0] 및 행렬 [erow1, ecol1]에 있는 금을 픽업하려는 경우. 위, 아래, 왼쪽, 오른쪽으로 이동할 수 있지만 셀(r, c)에 있을 때 비용 매트릭스 [r, c]를 지불해야 합니다. 해당 셀에 대한 비용을 다시 지불해야 합니다. 우리는 두 위치 모두에서 골드를 획득하기 위한 최소 비용을 찾아야 합니다. 따라서 입력이 다음과 같으면 1 1