n개의 정수로 구성된 두 개의 배열 A와 B가 있다고 가정하고, 이제 배열 C를 고려합니다. 여기서 i번째 숫자는 d*A[i] + B[i]입니다. d는 임의의 실수입니다. 배열 C의 최대 개수가 0이 되도록 d를 찾아야 합니다. 또한 0의 수를 반환합니다. 따라서 입력이 A =[15, 40, 45] 및 B =[4, 5, 6]인 경우 출력은 d =-0.266666이 되고 0의 수는 1이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=A의 크기 my_map :=새 지도 개수 :=0 0에서
m x m 차수의 정방 행렬이 있다고 가정합니다. 주어진 행렬의 모든 행에 공통적인 모든 고유한 요소를 찾아야 합니다. 따라서 입력이 다음과 같으면 13 2 15 4 17 15 3 2 4 36 15 2 15 4 12 15 26 4 3 2 2 19 4 22 15 출력은 [2,4,15]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − sortRows() 함수를 정의합니다. 매트릭스가 필요합니다. n :=행 수 0에서 n 사이의 i에 대해 수행 목록 행렬 정렬[i] 주요 방법에
n개의 다른 숫자 배열이 있다고 가정합니다. n은 최대 32,000일 수 있습니다. 배열에 중복 항목이 있을 수 있으며 n 값이 무엇인지 모릅니다. 이제 메모리가 4KB뿐인 경우 배열의 모든 중복 항목을 어떻게 표시할까요? 따라서 입력이 [2, 6, 2, 11, 13, 11]과 같으면 지정된 배열에서 2와 11이 두 번 이상 나타나므로 출력은 [2,11]이 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 하나의 바이트 배열 유형 데이터 구조 bit_arr 생성, 다음 메소드가 있습니다. 생성자를 정의하려면 n
f(m) =am + bm [log2(m)] + cm^3 및 (a =1, 2, 3, …), (b =1, 2, 3, …), (c =0, 1, 2, 3, …) 여기서 [log2(m)]은 밑이 2인 로그이고 값을 내림합니다. 그래서 m =1이면 값은 0입니다. m =2-3이면 값은 1입니다. m =4-7인 경우 값은 2입니다. m =8-15인 경우 값은 3입니다. 따라서 on f(m) =l이 되도록 m 값을 찾아야 합니다. l이 시퀀스에 없으면 0을 인쇄해야 합니다. 값은 64비트 및 100보다 작거나 같은 세 개의 정수 a,
AP 급수의 첫 번째 항(A)과 공차(d)가 있고 소수 P도 있다고 가정하면 첫 번째 요소의 위치를 찾아야 합니다. 주어진 소수 P의 배수인 주어진 AP에서. 따라서 입력이 A =3, D =4, P =5와 같으면 주어진 AP의 네 번째 항이 소수 5의 배수이므로 출력은 3이 됩니다. 따라서 첫 번째 항 =3, 두 번째 항 =3+4 =7, 세 번째 항 =3+2*4 =11 및 네 번째 항 =3+3*4 =15. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − get_pow() 함수를 정의합니다. x, y, p가 필요합니다
숫자 N이 있다고 가정합니다. N의 인자를 찾고 다음과 같은 N의 4개 인자의 곱만 반환해야 합니다. - 네 가지 요소의 합은 N과 같습니다. 4가지 요소의 곱이 최대입니다. 4가지 요소는 모두 제품을 최대화하기 위해 서로 동일할 수 있습니다. 따라서 입력이 N =60과 같으면 모든 요인이 → 1 2 3 4 5 6 10 12 15 20 30 60이므로 출력은 50625가 되고 우리 15가 4번 선택되었으므로 그 곱은 50625가 됩니다. 제품을 가장 크게 만듭니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다.
각 숫자가 [1, N] 범위에 있고 배열 크기가 (N-4)이고 단일 요소가 반복되지 않는 고유한 숫자의 배열이 있다고 가정합니다. 따라서 1에서 N까지 4개의 숫자가 배열에 누락되었음을 이해할 수 있습니다. 이 4개의 누락된 숫자를 정렬된 방식으로 찾아야 합니다. 따라서 입력이 A =[2, 8, 4, 13, 6, 11, 9, 5, 10]과 같으면 출력은 [1, 3, 7, 12]가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − temp_arr :=모두 0인 크기 4의 배열 범위 0에서 A 크기까지의 i에
n 쌍의 점이 있다고 가정합니다. 측면이 x 및 y 축에 평행한 정사각형을 생성할 수 있도록 4개의 점을 찾아야 합니다. 그렇지 않으면 불가능을 반환합니다. 둘 이상의 정사각형을 찾을 수 있으면 면적이 최대인 정사각형을 선택합니다. 따라서 입력이 n =6과 같으면 점 =[(2, 2), (5, 5), (4, 5), (5, 4), (2, 5), (5, 2)] , 출력은 3이고 포인트는 (2, 2) (5, 2) (2, 5) (5, 5) 이 문제를 해결하기 위해 다음 단계를 따릅니다. − my_map :=새 지도 0에서 n
주어진 무방향 그래프가 있다고 가정합니다. 크기가 l인 독립 집합이 포함되어 있는지 확인해야 합니다. 크기가 l인 독립적인 집합이 있으면 Yes를 반환하고 그렇지 않으면 No를 반환합니다. 그래프에서 독립 집합은 서로 직접 연결되지 않은 정점 집합으로 정의된다는 점을 명심해야 합니다. 따라서 입력이 L =4와 같으면 그러면 출력은 yes가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − is_valid() 함수를 정의합니다. 그래프가 필요합니다. ar 범위 0에서 arr 크기까지의 i에 대해 수행
바이너리 트리가 있다고 가정합니다. 주어진 이진 트리의 수직 레벨이 정렬되었는지 여부를 확인해야 합니다. 두 개의 노드가 겹칠 경우 해당 노드가 속한 레벨의 순서대로 정렬되었는지 확인합니다. 따라서 입력이 l =-1과 같은 경우 레벨 -1의 요소가 3,7이고 정렬되므로 출력은 True가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 루트가 null이면 참을 반환 이전 값 :=-inf current_level :=0 current_node :=값이 0인 새 트리 노드 q라는
lowCost에서 upCost까지의 비용 범위와 lowQuant에서 upQuant까지의 다른 수량 범위가 있다고 가정하면 r=비용/수량인 지정된 비율 r을 찾을 수 있는지 확인해야 합니다. , 그리고 lowCost ⇐ 비용 ⇐ upCost 및 lowQuant ⇐ 양 ⇐ upQuant. 따라서 입력이 lowCost =2, upCost =10, lowQuant =3, upQuant =9 및 r =3과 같으면 출력은 비용 =r * 수량 =3 * 3 =9인 True가 됩니다. 범위는 [1, 10]이고 수량은 [2, 8]입니다. 이 문제
배열 p에 3가지 종류의 컵이 있고 배열 q에 접시가 있고 m개의 선반이 있다고 가정하면 컵과 선반을 깔끔하게 배열할 수 있는지 확인해야 합니다. 다음 조건을 따르면 컵과 접시의 배열이 깔끔하다고 말할 수 있습니다. 1. 어떤 선반에도 컵과 접시를 둘 수 없습니다. 2. 자신은 최대 5개의 컵을 포함할 수 있습니다. 3. 자신은 최대 10개의 접시를 포함할 수 있습니다. 따라서 입력이 p =[4, 3, 7] q =[5, 9, 10] m =11과 같으면 총 컵 수 =14, 3개의 선반이 필요하고 총 접시가 필요하므로 출력은 Tru
그래프가 있다고 가정하고 소스 정점과 숫자 k도 있습니다. k는 소스에서 목적지까지의 그래프의 경로 길이이며, 소스에서 시작하여 다른 정점(목적지)에서 끝나는 단순 경로(주기 없음)를 찾을 수 있는지 확인해야 합니다. 그래프는 다음과 같습니다 - 따라서 입력이 Source =0, k =64와 같으면 0에서 7에서 1에서 2에서 8에서 6에서 5에서 3에서 4까지의 단순 경로가 존재하므로 출력은 True가 됩니다. 이 경로 길이는 총 64보다 큰 68의 거리입니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − or
길이가 같은 두 개의 문자열 S1과 S2가 있다고 가정하면 S1[0…i]와 S2[i+1…n-1]이 제공하는 인덱스 i를 찾아야 합니다. 함께 연결될 때 회문. 불가능할 경우 -1을 반환합니다. 따라서 입력이 S1 =pqrsu, S2 =wxyqp와 같으면 출력은 S1[0..1] =pq, S2[2..n-1] =ypq와 같이 1이 됩니다. , S1 + S2 =pqyqp는 회문임을 나타냅니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − n :=str1의 크기 str :=빈 문자열 0에서 n 사이의 i에 대해 수
바이너리 배열이 하나 있다고 가정합니다. 1의 연속 시퀀스의 최대 수를 얻으려면 1로 대체될 수 있는 0의 위치를 찾아야 합니다. 따라서 입력이 [1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1]과 같으면 출력은 10이 되므로 배열은 [1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1]. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 나는 :=0, n :=A의 크기 count_left :=0, count_right :=0 max_i :=-1, last_i :=-
하위 문자열의 반복이 하위 문자열 다음에 하위 문자열 개수로 표시되는 인코딩된 문자열이 하나 있다고 가정합니다. 예를 들어 문자열이 pq2rs2이고 k=5이면 출력은 r이 되는데, 이는 복호화된 문자열이 pqpqrsrs이고 5번째 문자가 r이기 때문입니다. 암호화된 하위 문자열의 빈도는 한 자리 이상일 수 있음을 명심해야 합니다. 따라서 입력이 string =pq4r2ts3 및 k =11과 같으면 문자열이 pqpqpqpqrrtststs이므로 출력은 i가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 인코딩된
바이너리 트리가 있다고 가정합니다. 왼쪽과 오른쪽 서브트리가 동일한 가장 큰 서브트리를 찾아야 합니다. 선호하는 시간 복잡도는 O(n)입니다. 따라서 입력이 다음과 같으면 그러면 출력은 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의합니다. 루트, 인코딩, maxSize, maxNode를 사용합니다. 루트가 None이면 0 반환 left_list :=빈 문자열이 있는 목록 right_list :=빈 문자열이 있는 목록 ls :=해결(root.left, l
배열이 두 개 있다고 가정합니다. 증가하는 부분이 첫 번째 배열에서 나와야 하고 첫 번째 배열의 하위 시퀀스여야 하도록 가능한 가장 긴 비트 시퀀스를 찾아야 합니다. 비슷하게 감소하는 부분은 두 번째 배열과 두 번째 배열의 하위 시퀀스에서 가져와야 합니다. 따라서 입력이 A =[2, 6, 3, 5, 4, 6], B =[9, 7, 5, 8, 4, 3]인 경우 출력은 [2, 3, 4 , 6, 9, 7, 5, 4, 3] 이 문제를 해결하기 위해 다음 단계를 따릅니다. − index_ceiling() 함수를 정의합니다. arr
문자열이 있다고 가정합니다. 문자열에서 문자를 삭제하거나 섞어서 생성할 수 있는 가장 긴 회문을 찾아야 합니다. 회문이 하나 이상 있으면 하나만 반환합니다. 따라서 입력이 pqqprrs와 같으면 출력은 pqrsrqp가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − count :=0으로 채워진 크기 256의 배열 범위 0에서 문자열 크기까지의 i에 대해 count[ASCII of(string[i]) ] :=count[ASCII of(string[i]) ] + 1 begin :=빈 문자열,
하나의 요소를 제외하고 서로 중복되는 두 개의 배열이 있다고 가정하고 주어진 배열 중 하나에서 하나의 요소가 누락된 경우 해당 누락된 요소를 찾아야 합니다. 따라서 입력이 A =[2, 5, 6, 8, 10], B =[5, 6, 8, 10]과 같으면 두 번째 배열에서 2가 누락되어 출력이 2가 됩니다. 이 문제를 해결하기 위해 다음 단계를 따릅니다. − solve() 함수를 정의합니다. A, B, N이 필요합니다. N이 1과 같으면 반환 A[0]; A[0]이 B[0]과 같지 않으면 반환 A[0]