nums라는 숫자 목록이 있다고 가정합니다. 목록을 개별 하위 목록으로 분할한 다음 각 부분을 정렬할 수 있습니다. 나중에 전체 숫자가 정렬되도록 분할할 수 있는 최대 하위 목록 수를 찾아야 합니다. 따라서 입력이 nums =[4, 3, 2, 1, 7, 5]와 같으면 [4, 3, 2, 1] 및 [7, 5] 이 문제를 해결하기 위해 다음 단계를 따릅니다. 카운트:=0 main_sum :=0, sorted_sum :=0 nums의 각 요소 x와 정렬된 형식의 yy에 대해 do main_sum :=main_sum + x sorted
nums라고 하는 숫자 목록과 또 다른 값 k가 있다고 가정하고 각 쌍의 합이 k로 나눌 수 있도록 목록을 쌍으로 분할할 수 있는지 확인해야 합니다. 따라서 입력이 nums =[4, 7, 2, 5] k =6과 같으면 주어진 목록을 (4, 2) 및 (8, 1)과 같은 쌍으로 분할할 수 있으므로 출력은 True가 됩니다. 그 합계는 3으로 나눌 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. nums에 짝수개의 요소가 있으면 거짓을 반환 count :=k 크기의 목록과 0으로 채우기 숫자 단위의 각 n에 대해 다
이진 목록(목록의 1과 0)과 또 다른 값 k가 있다고 가정합니다. 숫자의 각 값은 감옥의 상태를 나타내며 1은 점유된 감방을 나타내고 0은 빈 감방을 나타냅니다. 셀에 인접한 두 셀이 모두 채워져 있거나 둘 다 비어 있으면 매일 셀이 채워집니다. 그렇지 않으면 비어 있게 됩니다. 그래서 우리는 k일 후에 감옥의 상태를 찾아야 합니다. 따라서 입력이 nums =[1, 0, 1, 0, 0, 0, 0, 0] k =1과 같으면 출력은 [0, 1, 1, 0, 1, 1, 1, 0], 우리가 알 수 있듯이 첫 번째와 마지막 인덱스는 절대 2
A, B, C, D의 네 가지 목록이 있고 목표 값도 있다고 가정하면 A[i] + B[ j] + C[k] + D[l]은 대상과 동일합니다. 따라서 입력이 A =[5, 4, 3] B =[8, 4] C =[6, 2] D =[4, 10] target =23인 경우 출력은 3이 되고 4배가 됩니다. [5, 8, 6, 4] [3, 4, 6, 10] [3, 8, 2, 10]입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 카운트:=0 m :=빈 지도 A의 각 i에 대해 다음을 수행합니다. B의 각 j에 대해 다음을 수행합니다. m
각 행에 2개의 값 [height, count]이 포함된 2D 행렬이 있다고 가정해 보겠습니다. 이 값은 사람이 키를 주었다는 것을 나타내고 그들 앞에 최소한 그들만큼 키가 큰 사람의 count 수가 있습니다. 이제 이 대기열이 셔플되었다고 생각하면 대기열의 원래 순서를 복구해야 합니다. 따라서 입력이 다음과 같으면 2 2 4 0 5 0 그러면 출력은 4 0 5 0 2 2 이 문제를 해결하기 위해 다음 단계를 따릅니다. N :=행렬의 행 수 높이 증가 및 개수 감소
숫자 n이 있다고 가정하고 해당 숫자에 대한 그레이 코드(즉, n번째 그레이 코드)를 찾아야 합니다. 우리가 알고 있듯이 그레이 코드는 각 연속 숫자의 값이 정확히 1비트씩 다르도록 이진수를 정렬하는 방법입니다. 일부 그레이 코드는 다음과 같습니다. [0, 1, 11, 10, 110, 111 등] 따라서 입력이 n =12와 같으면 12가 이진법으로 (1100)이므로 출력은 10이 되며 해당 회색 코드는 (1010)이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. solve() 함수를 정의합니다. n 소요됩니다. n이
문자열 s와 다른 값 k가 있다고 가정하고 가장 오래된 k 연속 중복 문자를 반복적으로 삭제하고 마지막 문자열을 반환합니다. 따라서 입력이 s =paaappmmmma k =3과 같으면 pppmmmma를 얻기 위해 3개의 a를 삭제할 때와 같이 출력이 ma가 됩니다. 그런 다음 mmmma를 얻기 위해 세 개의 p를 삭제합니다. 그런 다음 4개의 m 중 3개를 삭제하여 ma를 얻습니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 다음 단계를 무한히 수행합니다. 카운트:=0 chars :=s에서 고유한 문자 가져오기 chars
target이라는 숫자 목록이 있다고 가정합니다. 이제 주어진 목록과 길이가 같고 X가 1로 채워진 목록 X를 고려합시다. 다음 작업을 원하는 만큼 수행할 수 있습니다. X의 인덱스 i를 선택하고 X[i]를 X의 현재 합으로 설정합니다. 마지막으로 X가 대상으로 전환될 수 있는지 여부를 확인합니다. 따라서 입력이 target =[5, 9, 3]과 같으면 출력은 처음에 X =[1, 1, 1]과 같이 True가 되고 총합 3으로 업데이트하고 배열은 [1, 1]이 됩니다. , 3], 현재 합은 5, 업데이트 [5, 1, 3], 현재 합
삼항 표현식을 포함하는 표현식이 있다고 가정하고 표현식의 결과를 평가해야 합니다. True 및 False 및 ?에 대한 T 및 F와 같은 일부 값을 지원합니다. 및 : 문자. 몇 가지 속성이 있습니다. 주어진 문자열의 길이는 10000보다 작거나 같아야 합니다. 조건식 그룹은 오른쪽에서 왼쪽입니다. 조건은 항상 T 또는 F입니다. 따라서 조건은 결코 숫자가 아닙니다. 표현식의 결과는 항상 T 또는 F로 평가됩니다. 예를 들어 입력이 T ? 티 ? F :T :T”이므로 출력은 F가 됩니다. 이 문제를 해결하기 위해 다음 단계를
연결 목록이 있다고 가정하고 두 개의 값 i와 j도 있다고 가정하고 연결 목록을 i에서 j번째 노드로 바꿔야 합니다. 그리고 마지막으로 업데이트된 목록을 반환합니다. 따라서 입력이 [1,2,3,4,5,6,7,8,9] i =2 j =6과 같으면 출력은 [1, 2, 7, 6, 5, 4가 됩니다. , 3, 8, 9, ] 이 문제를 해결하기 위해 다음 단계를 따릅니다. prev_head :=null과 같은 값으로 노드를 가리키는 연결 목록 노드 생성 이전 :=prev_head, curr :=노드 0에서 i까지의 모든 값을 반복합니다.
문자열과 구분 기호 집합이 있다고 가정하고 구분 기호의 상대적 순서가 변경되지 않아야 하는 동안 문자열의 단어를 반대로 해야 합니다. 따라서 입력이 s =Computer/Network:Internet|tutorialspoint delims =[/, :, |]인 경우 출력은 tutorialspoint/Internet:Network|Computer가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 단어 :=새 목록 ans :=빈 문자열 temp :=지도 구분자를 제외한 단어를 분리하여 단어 배열에 삽입 문자가 구분
두 개의 이진 트리가 있다고 가정합니다. 두 트리에서 왼쪽에서 오른쪽으로 잎의 순서가 동일한지 확인해야 합니다. 따라서 입력이 다음과 같으면 두 트리에 대해 시퀀스가 [2, 6]이므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. c :=새 목록 inorder() 함수를 정의합니다. 이것은 뿌리를 내리고 c c가 null이면 c :=새 목록 루트가 null이 아니면 inorder(루트의 왼쪽, c) 루트의 왼쪽이 null이고 루트의 오른쪽이 null이면 c 끝에 root 값 삽입
각 값이 작업을 완료하는 데 걸리는 시간 단위를 결정하는 nums라는 숫자 목록이 있다고 가정합니다. 비연속적인 작업은 건너뛸 수 있으며 모든 작업을 완료하는 데 걸리는 최소 시간을 찾아야 합니다. 따라서 입력이 nums =[11, 6, 8, 16]과 같으면 첫 번째 작업과 마지막 작업을 건너뛸 수 있으므로 출력은 14가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. n :=숫자 크기 table :=n x 2 행렬을 만들고 0으로 채웁니다. 테이블[0, 0] :=0 테이블[0, 1] :=숫자[0] 1 ~ n - 1
이진 트리가 있다고 가정합니다. 우리는 두 번째로 깊은 잎사귀의 깊이를 찾아야 합니다. 가장 깊은 리프가 여러 개 있는 경우 두 번째로 깊은 리프 노드가 다음으로 높은 노드가 됩니다. 우리가 알고 있듯이 루트의 깊이는 0입니다. 따라서 입력이 다음과 같으면 두 번째로 깊은 노드가 3이므로 출력은 1이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 루트가 null이면 null 반환 노드:=새 목록 노드 끝에 루트 삽입 count :=0, 이전 :=0, 현재 :=0 노드가 비어 있지 않은 동안 수행 new :=
항목이라는 숫자 목록과 다른 값 n이 있다고 가정합니다. 판매원은 임의의 ID가 있는 가방에 항목을 가지고 있습니다. 판매원은 가방에서 최대 n개의 항목을 삭제할 수 있습니다. n번 제거한 후 가방에서 최소 개수의 다른 ID를 찾아야 합니다. 따라서 입력이 항목 =[2, 2, 6, 6] n =2와 같으면 ID 2 또는 ID 6을 가진 두 개의 항목을 판매할 수 있으므로 출력은 1이 됩니다. 그러면 단일 대상이 있는 항목만 거기. 이 문제를 해결하기 위해 다음 단계를 따릅니다. c :=항목에 있는 각 요소의 빈도 ans :=c의
연결된 목록이 있다고 가정합니다. 목록을 오름차순으로 정렬해야 합니다. 따라서 입력이 [5, 8, 4, 1, 5, 6, 3]과 같으면 출력은 [1, 3, 4, 5, 5, 6, 8, ]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. 값 :=새 목록 헤드:=노드 노드가 null이 아닌 동안 수행 값 끝에 노드 값 삽입 노드:=노드의 다음 목록 값 정렬 values :=값의 요소를 취하여 이중 종료 큐를 만듭니다. 노드:=헤드 노드가 null이 아닌 동안 수행 노드 값:=큐의 왼쪽 요소 및 큐의 왼쪽에서 요소 삭
2D 매트릭스 매트가 있다고 가정합니다. 행렬 요소를 나선형으로 인쇄해야 합니다. 처음에는 첫 번째 행(mat[0, 0])에서 시작하여 전체 내용을 인쇄한 다음 마지막 열을 따라 인쇄한 다음 마지막 행을 따라 인쇄하는 방식으로 요소를 나선형으로 인쇄합니다. 따라서 입력이 다음과 같으면 7 10 9 2 9 1 6 2 3 9 1 4 2 7 5 9 9 11 출력은 [7, 10, 9, 1, 3, 4, 5, 11, 9, 9, 2, 9, 6, 2, 9, 2, 1
숫자 A, B, C 및 D의 4개 목록이 있고 또 다른 숫자 대상이 있다고 가정합니다. A[i] + B[j] + C[k] + D[l] ≤ target이 되도록 서로 다른 고유 인덱스 i, j, k, l의 수를 찾아야 합니다. 따라서 입력이 A =[3, 2] B =[5, 3] C =[1] D =[2, 3] target =9인 경우 출력은 3이 됩니다. 다음을 선택할 수 있습니다. 조합:[3, 3, 1, 2] [3, 3, 1, 2] [2, 3, 1, 3] 이 문제를 해결하기 위해 다음 단계를 따릅니다. temp_list :=새 목
nums라는 숫자 목록이 있다고 가정합니다. 그리고 정사각형 블록의 높이를 나타내는 것이므로 y =x 선에 대해 모양이 대칭인지 확인해야 합니다. 따라서 입력이 nums =[7, 5, 3, 2, 2, 1, 1]과 같으면 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. i :=0 j :=숫자 크기 - 1 내가 <=j, 하는 동안 h :=숫자[j] 내가
방이라는 목록 목록이 있다고 가정합니다. 방의 각 인덱스 i는 방을 나타내고 rooms[i]는 다른 방을 여는 다른 키를 나타냅니다. 방 0이 열려 있고 우리는 그 방에 있고 다른 모든 방은 잠겨 있습니다. 열린 방 사이를 자유롭게 이동할 수 있습니다. 모든 방을 열 수 있는지 여부를 확인해야 합니다. 따라서 입력이 rooms =[[2, 0], [3],[1],[]]와 같으면 출력은 True가 됩니다. 우리가 방 0에서 시작하여 키를 사용하여 방 2로 갈 수 있기 때문입니다. 2. 2번 방에서 1번 방으로 갈 수 있습니다. 그런 다