우리에게 정수가 주어졌다고 가정해 봅시다. x와 작업은 x보다 작은 수를 세는 것입니다. x와의 XOR은 XOR 값보다 큰 값을 가져옵니다. XOR 연산의 진리표는 다음과 같습니다. A B XOR B 0 0 0 1 0 1 0 1 1 1 1 0 입력 - 정수 x =11 출력 − x와의 XOR이 x보다 큰 더 작은 값의 개수는 − 4 설명 - x는 11로 주어지며, 이는 x보다 작은 숫자로 x의 XOR을 찾아야 함을 의미합니다. 따라서 숫자는 1 XOR 11 <11(FALSE), 2 XOR 11 <11(FALSE
배열이 주어지고 순환 방식의 하위 배열 합계가 최대값이 되도록 하위 배열을 형성하는 작업입니다. 입력 - 정수 arr[] ={1, 2, 8, 4, 3, 0, 7} 출력 − 최대 원형 하위 배열 합계는 − 22입니다. 설명 − {1, 2, 8, 4, 3, 0, 7}을 포함하는 배열이 주어지고 최대 합을 갖는 하위 배열은 7 + 1 + 2+ 8 + 4가 22가 됩니다. 입력 - 정수 arr[] ={ 2, 5, -1, 6, 9, 4, -5 } 출력 − 최대 원형 하위 배열 합계는 − 25입니다. 설명 − {2, 5, -1,
행과 열이 있는 2차원 배열인 행렬이 주어졌으며 작업은 모든 행과 열의 합을 계산하여 다음과 같도록 하는 것입니다. 주 또는 이차 행렬의 합입니다. 입력 - int arr[row][col] = { { 4, 1, 7 }, { 10, 3, 5 }, { 2, 2, 11} } 출력 − 합계가 대각선 합계와 같은 행/열의 개수는 &mins입니다. 2 설명 - 주 대각선의 합은 4 + 3 + 11 =18이고 보조 대각선의 합은 7 + 3 + 2 =12입니다. 행의 합
정렬된 유형 요소의 배열이 제공되고 숫자가 num이라고 가정해 보겠습니다. 작업은 주어진 요소 num이 배열에 나타나는 횟수를 계산하는 것입니다. . 입력 - 정수 arr[] ={1, 1, 1,2, 3, 4}, 숫자 =1 출력 − 정렬된 배열의 발생 횟수(또는 빈도)는 − 3입니다. 입력 - 정수 arr[] ={2, 3, 4, 5, 5, 6, -7}, 숫자 =5 출력 − 정렬된 배열에서 발생 횟수(또는 빈도)는 − 2입니다. 입력 - 정수 arr[] ={-1, 0, 1, 2, 3}, 숫자 =7 출력 − 정렬된 배열에서 발
정수 요소의 배열이 주어지고 주어진 배열에서 GCD가 1인 하위 시퀀스를 찾는 것이 작업입니다. GCD는 둘 이상의 최대 공약수입니다. 주어진 숫자를 전체와 가장 큰 숫자로 나누는 정수입니다. 입력 - 정수 arr[] ={3, 4, 8, 16} 출력 − GCD가 1인 하위 시퀀스의 수는 − 7입니다. 설명 - GCD가 1인 주어진 배열에서 구성할 수 있는 부분 수열은 (3, 4), (3, 8), (3, 16), (4, 3), (8, 3), (16, 3), (3, 4, 8) 입력 - 정수 arr[] ={5, 7, 10} 출
nums라고 하는 고유한 정수 목록이 있다고 가정합니다. 최대 하나의 숫자를 포함하도록 가장 큰 간격(포함) [start, end]의 크기를 찾아야 합니다. 따라서 입력이 nums =[10, 6, 20]과 같으면 출력은 99990이 됩니다. 가장 큰 간격은 [11, 100000]이므로 여기에는 20만 포함됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret :=-inf 끝 :=100000 이전 :=1 배열 번호 정렬 n :=숫자 크기 initialize i :=0의 경우, i <숫자의
nums라고 하는 정수 목록이 있다고 가정합니다. 이제 목록에서 정수의 일부 하위 집합을 선택하고 모두 1씩 증가시키는 작업을 가정합니다. 목록의 모든 값을 서로 같게 하려면 필요한 작업의 최소 수를 찾아야 합니다. 따라서 입력이 [1,3,5]와 같으면 출력은 4가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 숫자의 크기가 1과 같으면 - 0 반환 ret :=0 maxVal :=-inf minVal :=inf initialize i :=0의 경우, i
각 간격에 두 개의 값[start, end]이 있는 간격의 2차원 목록이 있다고 가정합니다. 다른 간격을 포함하는 간격이 있는지 여부를 찾아야 합니다. 따라서 입력이 [[2,4],[5,11],[5,9],[10,10]]과 같으면 출력은 [5,11]에 [5, 9]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 배열 v 정렬 하나의 2D 배열 ret 정의 각 간격에 대해 v − ret가 비어 있으면 - ret의 끝에 삽입 =it[0]의 마지막 요소인 경우 - true를 반환 그렇
nums라는 정수 목록이 있다고 가정하면 목록을 두 개의 하위 목록(비어 있지 않음)으로 분할하여 왼쪽 부분의 모든 숫자가 완전히 더 작아지도록 할 수 있는지 여부를 찾아야 합니다. 오른쪽 부분의 모든 숫자보다. 따라서 입력이 [6,4,3,8,10]과 같으면 왼쪽 =[6,4,3] 및 오른쪽 =[8,10]과 같이 출력이 true가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=숫자 크기 n 크기의 오른쪽 배열 정의 크기가 n인 배열을 정의합니다. 왼쪽[0] :=숫자[0] 오른쪽의 마
nums라는 정수 배열이 하나 있고 여기에는 0과 1이 포함되어 있다고 가정합니다. 숫자에서 인덱스 i를 선택하고 인덱스 i에서 요소를 뒤집고 i의 오른쪽에 있는 모든 숫자를 뒤집는 작업이 있다고 가정합니다. 숫자에 모두 0이 포함되도록 하는 데 필요한 최소 연산 수를 찾아야 합니다. 따라서 입력이 [1,0,1]과 같으면 출력은 3이 되고 인덱스 0에 대한 작업은 [0,1,0]으로 변환된 다음 인덱스 1에서 [ 0,0,1], 인덱스 2, [0,0,0]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=숫자 크기
각 문자가 L, R 또는 ?인 문자열 s가 있다고 가정합니다. L은 왼쪽으로 한 단위 이동, R은 오른쪽으로 한 단위 이동, ? L 또는 R을 의미합니다. 위치 0에 있는 경우 ?를 대체하여 0에서 가능한 최대 거리를 찾아야 합니다. L 또는 R로. 따라서 입력이 LLRRL??과 같으면 출력은 3이 되고 ? L을 사용하여 왼쪽으로 5단위, 오른쪽으로 2단위 이동하므로 최대 변위는 3입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 연산 :=0, l :=0, r :=0 각각에 대해 s − L과 같으면 -
이진 행렬이 하나 있다고 가정합니다. 행을 뒤집은 다음 열을 뒤집을 때 얻을 수 있는 최대 1 수를 찾아야 합니다. 입력이 다음과 같으면 1 0 1 0 1 0 1 0 0 그러면 출력은 8이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=행렬의 행 크기 m :=행렬의 열 크기 ret :=0 크기가 n인 배열 행 정의 크기가 n인 배열 열 정의 총계 :=0 initialize i :=0의 경우, i
num이라는 음이 아닌 정수가 있다고 가정하고 회문인지 아닌지 확인해야 하지만 문자열은 사용하지 않습니다. 따라서 입력이 1331과 같으면 출력이 true가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret :=0 x :=숫자 0일 때 − d :=숫자 모드 10 렛 :=렛 * 10 렛 :=렛 + d 숫자 :=숫자 / 10 x가 ret와 같을 때 true를 반환 이해를 돕기 위해 다음 구현을 살펴보겠습니다. − 예시 #include <bits/stdc++.
nums라고 하는 고유한 정수 목록이 있다고 가정합니다. 표준 이진 검색을 사용하여 여전히 성공적으로 찾을 수 있는 정수의 수를 찾아야 합니다. 따라서 입력이 [2,6,4,3,10]과 같으면 출력은 3이 됩니다. 마치 이진 검색을 사용하여 4를 찾는 것처럼 처음에는 찾을 수 있습니다. 반복. 또한 두 번의 반복 후에 2와 10을 찾을 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − help() 함수를 정의하면 대상, 배열 및 숫자가 필요합니다. 낮음 :=0 high :=숫자 크기 - 1 낮음
정수 목록이 있다고 가정하면 다음과 같이 목록을 정렬해야 합니다. - 첫 번째 요소는 최대값입니다. 두 번째 요소는 최소입니다. 세 번째 요소는 두 번째 최대값입니다. 네 번째 요소는 두 번째 최소값입니다. 등등. 따라서 입력이 [6,3,10,4]와 같으면 출력은 [10, 3, 6, 4]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − ret 배열 정의 배열 번호 정렬 j :=숫자 크기 - 1 나는 :=0 나는 <=j, 하는 동안 − ret 끝에 nums[
하나의 숫자 n이 있다고 가정합니다. 여기서 n은 n개의 가득 찬 맥주병을 나타냅니다. 빈 맥주병 3병을 가득 찬 맥주 1병으로 바꿀 수 있다면 우리가 마실 수 있는 맥주병의 수를 찾아야 합니다. 따라서 입력이 10과 같으면 출력은 14가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의하면 n이 필요합니다. ret :=0 =3인 동안 − q :=n / 3 렛 :=렛 + q * 3 n :=n - q * 3 n :=n + q 렛 :=렛 + n 리
각 요소에 [start, end]와 같은 간격이 있는 정수 간격 목록 목록이 있다고 가정합니다. 구간에서 가장 자주 발생하는 번호를 찾아야 합니다. 동점일 경우 가장 작은 수를 반환합니다. 따라서 입력이 [[2, 5],[4, 6],[7, 10],[8, 10]]과 같으면 출력은 4가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 맵 정의 cnt :=0, val :=0 x −의 각 값에 대해 (m[it[0]] 1씩 증가) m[it[1] + 1] 1 감소 마지막 :=0 각
요청 목록이 있다고 가정합니다. 여기서 requests[i]에는 시간 t에 사람이 도착하여 안으로 들어가고(내부는 1을 사용함을 나타냄) 외부로 나가기를 원함(outside는 표시 0). 그래서 문이 하나뿐이고 문을 사용하는 데 한 시간 단위가 걸린다면 따라야 할 몇 가지 규칙이 있습니다 - 문은 in 위치에서 시작하여 마지막 참가자가 사용한 위치로 설정됩니다. 주어진 시간 t에 문에 참가자가 한 명만 있으면 문을 사용할 수 있습니다. 2인 이상 입장을 원할 경우 먼저 입장한 사람이 먼저 입장하고 이전에 사용한 방향
각 분수에 [분자, 분모](분자/분모)가 포함된 분수 목록이 있다고 가정합니다. 분수의 숫자가 -가 되도록 새로운 분수 목록을 찾아야 합니다. 가장 축소된 용어로. (20 / 14는 10 / 7이 됩니다). 중복 분수(줄인 후)는 제거됩니다. 실제 값을 기준으로 오름차순으로 정렬됩니다. 숫자가 음수이면 - 기호가 분자와 함께 표시됩니다. 따라서 입력이 {{16, 8},{4, 2},{7, 3},{14, 6},{20, 4},{-6, 12}}와 같은 경우 출력은 [[-1, 2],[2, 1],[7, 3],[5,
TV 프로그램 목록과 다른 재생 시간 목록, 정수 k가 있다고 가정하고 여기에서 show[i]를 표시하고 duration[i]는 i번째 사용자가 시청한 이름과 재생 시간을 표시합니다. 사람, 우리는 가장 많이 본 k 프로그램의 총 시청 시간을 찾아야 합니다. 따라서 입력이 다음과 같은 경우:[캐슬 플레이, 동화 시리즈, 캐슬 플레이, 제리 마우스, 리치 보이], 지속 시간:[6, 4 , 6, 14, 5] 및 k =2이면 출력은 26이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 맵 정의 n :=v