배열 nums와 다른 값 k가 있다고 가정하면 크기 k의 nums에서 가장 경쟁력 있는 부분 시퀀스를 찾아야 합니다. 여기서 하위 시퀀스 s1은 s1과 s2가 다른 첫 번째 위치에서 하위 시퀀스 s1이 s2의 해당 숫자보다 작은 숫자를 갖는 경우 하위 시퀀스 s2(동일한 크기)보다 경쟁력이 있습니다. 따라서 입력이 nums =[4,6,3,7] k =2와 같으면 크기가 2인 모든 부분 시퀀스 중에서 {[4,6], [4, 3], [4,7], [6,3], [6,7], [3,7]}, [3,7]이 가장 경쟁력이 있습니다. 이 문제를 해결
길이가 같은 두 개의 문자열과 b가 있다고 가정합니다. 인덱스를 선택하고 선택한 인덱스에서 두 문자열을 모두 분할해야 합니다. a_pref 및 a_suff 여기서 a =a_pref | a_suff 및 b를 두 개의 문자열로 분할:b_pref | b_suff(|는 연결 연산자) 여기서 b =b_pref + b_suff입니다. a_pref + b_suff 또는 b_pref + a_suff가 회문을 형성하는지 확인하십시오. (모든 분할은 빈 문자열일 수 있음) 따라서 입력이 =pqrst b =turqp와 같으면 [pq, rst]와 b를
다른 값 제한이 짝수인 배열 num이 있다고 가정합니다. 한 번의 이동으로 nums의 값을 1과 limit(포함) 사이의 다른 값으로 바꿀 수 있습니다. 모든 인덱스 i에 대해 nums[i] + nums[n-1-i]가 동일한 숫자이면 배열이 상보적이라고 합니다. 따라서 숫자를 보완하는 데 필요한 최소 이동 수를 찾아야 합니다. 따라서 입력이 nums =[1,4,2,3] limit =4와 같으면 한 번의 이동으로 인덱스 1에서 2까지의 요소를 만들 수 있으므로 출력은 1이 됩니다. 따라서 배열은 [1,2 ,2,3], nums[0]
일련의 숫자 num과 크기가 m인 또 다른 두 개의 배열 l과 r이 있다고 가정합니다. 이 l과 r은 [l[i], r[i]]와 같은 범위 쿼리를 나타냅니다. 부울 시퀀스 ans를 찾아야 합니다. 여기서 ans[i]는 하위 배열 nums[l[i]], nums[l[i] + 1], ... nums[r[i] - 1]일 때 참입니다. nums[r[i]]는 산술 시퀀스를 생성하도록 배열될 수 있습니다. 그렇지 않으면 false입니다. 수열은 적어도 두 개의 요소로 구성되고 연속된 두 요소의 차이가 모두 같으면 산술 연산이라고 합니다. 예를
높이가 다른 n개의 집이 있고 파쿠르 예술가가 벽돌과 사다리를 사용하여 한 집에서 다른 집으로 이동하려고 한다고 가정합니다. 집의 높이는 배열로 제공됩니다. 각 벽돌은 높이가 단위 길이이며 소수가 제공됩니다. 사다리와 벽돌은 한 번만 사용할 수 있습니다. 파쿠르 예술가가 갈 수 있는 가장 먼 건물을 찾아야 합니다. 따라서 입력이 height =[5, 8, 7, 6, 2, 3, 1, 4], 벽돌 =3, 사다리 =2와 같으면 출력은 7이 됩니다. 아티스트는 건물 0부터 시작합니다. 그는 3개의 벽돌을 사용하여 건물 1에 도달합니다
인벤토리라는 배열이 있다고 가정합니다. 여기서 인벤토리[i]는 처음에 가지고 있는 i번째 색상의 볼 수를 나타냅니다. 또한 고객이 원하는 총 볼 수를 나타내는 order라는 값도 있습니다. 우리는 어떤 순서로 공을 판매할 수 있습니다. 재고에는 다양한 색상의 공이 있으며 고객은 모든 색상의 공을 원합니다. 이제 공의 가치는 본질적으로 특별합니다. 각 색 공의 값은 인벤토리에 있는 해당 색 공의 수입니다. 따라서 현재 6개의 파란색 공이 있는 경우 고객은 첫 번째 파란색 공에 대해 6개를 지불합니다. 그러면 남은 파란색 공은 5개뿐이
두 개의 문자 와 t만 있는 문자열 s가 있다고 가정합니다. 문자열의 균형을 맞추기 위해 의 문자를 원하는 만큼 삭제할 수 있습니다. i
4개의 캐빈이 있는 관람차가 있고 각 캐빈에 4명의 승객이 탑승할 수 있다고 가정합니다. 바퀴는 반시계 방향으로 회전하며, 1회전할 때마다 달리기 비용이 듭니다. 이제 n개의 항목을 포함하는 배열 cust가 있으며 각 항목 i는 i번째 회전 전에 관람차에 탑승하기 위해 기다리는 사람들의 수를 나타냅니다. 휠에 탑승하기 위해서는 각 고객이 일정 금액의 보드를 지불해야 하며, 그 만큼의 금액은 휠을 시계 반대 방향으로 한 바퀴 회전하는 것입니다. 선실에 빈 좌석이 있으면 줄을 서서 기다리는 사람들을 기다리지 마십시오. 따라서 데이터가
금지된 배열이 있다고 가정합니다. 여기서 금지된[i]는 버그가 금지된 위치[i]로 이동할 수 없음을 나타내고 우리는 또한 세 개의 값, b 및 x를 가지고 있습니다. 벌레의 집은 숫자 라인의 x 위치에 있습니다. 처음에는 위치 0에 있습니다. 다음 규칙에 따라 점프할 수 있습니다 - 버그는 정확히 오른쪽 위치로 이동할 수 있습니다. 버그는 왼쪽으로 정확히 b 위치로 이동할 수 있습니다. 버그는 뒤로 두 번 연속으로 점프할 수 없습니다. 버그는 배열에 지정된 금지된 위치로 이동할 수 없습니다. 버그는 집 너
다른 세대의 구성원으로 구성된 가족이 있다고 가정합니다. 예를 들어 가족에는 아버지, 자녀, 할머니가 있습니다. 그러나 출생과 사망은 각 가정에서 발생합니다. 가족의 가장 오래된 구성원은 머리로 간주됩니다. 따라서 주 멤버가 사망하면 직계승계자 또는 자녀가 책임자가 됩니다. 우리는 세 가지 기능을 구현합니다. 첫 번째 기능은 자녀가 가족으로 태어날 때 사용됩니다. 이 함수는 부모의 이름과 자식의 이름을 입력으로 받아 레코드에 추가합니다. 두 번째 기능은 사망이 있을 때 사용됩니다. 사망한 가족 구성원의 이름을 입력으로 받아 기록
n개의 점이 (x, y)로 주어졌다고 가정합니다. 수직 영역은 y축을 따라 무한히 확장된 영역입니다. 다른 점이 영역 내부에 없고 가장 넓도록 두 점 사이의 수직 영역을 찾아야 합니다. 따라서 입력이 pts =[[10,9],[11,11],[9,6],[11,9]]와 같으면 출력은 1이 됩니다. 빨간색과 파란색 영역이 최적이며 그 안에 점이 없습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 목록 포인트 정렬 범위 1에서 pt 크기까지의 i에 대해 (pts[i, 0] - pts[i - 1, 0])
두 개의 문자열 s와 t가 있다고 가정하고 s와 t가 가까운지 여부를 확인해야 합니다. 다음 작업을 사용하여 다른 문자열에서 하나를 얻을 수 있으면 두 문자열이 가깝다고 말할 수 있습니다. - 기존 캐릭터 2개를 교환하십시오. (예:abcde에서 aecdb로) bbcbaa(여기서 모든 a는 b로 변환되고 그 반대의 경우도 마찬가지입니다)) 두 문자열에 대해 원하는 만큼 작업을 사용할 수 있습니다. xyyzzz). 이 문제를 해결하기 위해 다음 단계를 따릅니다. − s와 t에 특이한 문자가 있으면 거짓을
앞, 중간, 뒤에서 값을 푸시하고 팝할 수 있는 큐를 구현하라는 요청을 받았다고 가정해 보겠습니다. 세 가지 경우 모두에 대해 푸시 및 팝업 기능을 구현해야 합니다. 주어진 시간에 전체 대기열을 표시하는 다른 기능을 구현해야 합니다. 따라서 입력이 다음과 같으면 push_from_back(10) push_from_back(20) push_from_front(30) push_from_middle(40) push_from_front(50) show_queue() pop_from_back() show_queue() p
각 셀에 보드가 있는 m x n 그리드 상자가 있다고 가정해 보겠습니다. 각 셀에는 오른쪽 상단에서 왼쪽 하단으로 또는 왼쪽 상단에서 오른쪽 하단으로 배치됩니다. 이제 맨 위 셀에서 공이 상자에 들어가고 그 공이 상자의 맨 아래에 도달하는지 확인해야 합니다. 그리드는 행렬로 제공됩니다. 셀이 1로 표시된 경우 대각선 보드는 왼쪽 상단에서 오른쪽 하단까지 확장됩니다. -1로 표시된 경우 오른쪽 상단에서 왼쪽 하단 모서리까지 이어집니다. n개의 공을 상자에 넣으면 바닥에 닿는 공의 수를 알아내야 합니다. 3x3 격자 상자의 예 따
크기가 m인 배열이 있다고 가정하고 작은 도시에 있는 m개의 주택을 나타내고 각 주택은 n개의 색상 중 하나로 칠해야 합니다(색상은 1에서 n까지 표시됨). 그리고 일부 주택은 이미 칠해져 있으므로 필요하지 않습니다. 다시 칠합니다. 같은 색으로 칠해진 집들을 이웃이라고 합니다. 우리는 배열 집이 있습니다. 여기서 집[i]은 집의 색상을 나타내고, 색상 값이 0이면 집이 아직 색칠되지 않았음을 나타냅니다. 비용이라는 또 다른 배열이 있습니다. 이것은 비용[i, j]이 색상 j+1로 집 i를 색칠하는 비용을 나타내는 2D 배열입니다.
집이라는 배열이 있고 다른 값 k가 있다고 가정합니다. 여기서 house[i]는 거리를 따라 i번째 집의 위치를 나타냅니다. 거리에 k개의 우편함을 할당하고 각 집과 가장 가까운 우편함 사이의 최소 총 거리를 찾아야 합니다. 따라서 입력이 집 =[6,7,9,16,22] k =2와 같으면 출력은 9가 됩니다. 왜냐하면 사서함을 7과 18에 배치하면 각 집으로부터의 최소 총 거리는 |6이기 때문입니다. -7|+|7-7|+|9-7|+|16- 18|+|22-18| =1+0+2+2+4 =9. 이 문제를 해결하기 위해 다음 단계를 따릅
0에서 n-1까지 번호가 매겨진 n개의 노드가 있는 트리가 있다고 가정합니다. 트리는 부모 배열에 의해 제공되며, 여기서 parent[i]는 노드 i의 부모입니다. 트리의 루트는 노드 0입니다. 주어진 노드의 k번째 조상을 찾아야 합니다. 조상이 없으면 -1을 반환합니다. 따라서 입력이 다음과 같으면 노드 6의 첫 번째 조상은 5이고 두 번째는 2이기 때문에 출력은 2가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의합니다. 이것은 부모, 노드, k를 취합니다. 노드가 -1
0부터 n -1까지 번호가 매겨진 n개의 꼭짓점을 포함하는 그래프가 있다고 가정합니다. 그래프는 무향이며 각 간선에는 가중치가 있습니다. 따라서 그래프가 주어지면 그래프 MST에서 임계 및 의사 임계 에지를 찾아야 합니다. 해당 간선을 삭제하면 MST 가중치가 증가하는 경우 해당 간선을 임계 간선이라고 합니다. 유사 임계 간선은 모든 그래프 MST에 나타날 수 있지만 전부는 아닌 간선입니다. 그래프가 입력으로 주어졌을 때 모서리의 인덱스를 찾습니다. 따라서 입력이 다음과 같으면 정점의 수가 5이면 출력은 [[], [0, 1,
candiesCount[i]가 i번째 유형의 사탕 수를 나타내는 양수 값 candiesCount의 배열이 있다고 가정합니다. 또한 query[i]에 세 개의 매개변수[favoriteType_i, FavoriteDay_i, dailyCap_i]가 있는 쿼리라는 또 다른 배열이 있습니다. 몇 가지 규칙이 있습니다: 0일차부터 사탕 먹기 시작합니다. 우리는 이전의 i-1 유형의 사탕을 모두 먹지 않는 한 유형 i의 사탕을 먹을 수 없습니다. 우리는 그것을 모두 먹을 때까지 하루에 적어도 하나의 사탕을 먹어야 합니다.
num이라는 배열이 있다고 가정합니다. 하위 배열 [nums_l, nums_l+1, ..., nums_r-1, nums_r]의 절대 합은 |nums_l + nums_l+1 + ... + nums_r-1 + nums_r|입니다. num의 모든 하위 배열의 최대 절대 합계를 찾아야 합니다(해당 하위 배열은 비어 있을 수 있음). 따라서 입력이 nums =[2,-4,-3,2,-6]과 같으면 하위 배열 [2,-4,-3,2]에 최대 절대 하위 배열 합계가 있기 때문에 출력은 11이 됩니다. 2 + (-4) + (-3) + 2| =11.