공개이 질문은 CS 수업의 질문을 기반으로합니다. 그래도 그걸 확장하려고합니다.정수 곱하기 알고리즘
초기 문제는 단순히 n
정수 세트가 지정되면 (자), (마다 다른 n_i
없는) n-1
정수의 n
제품을보고있다. 선형 시간으로 실행하는 것입니다.
예를 들어, {1, 2, 3, 4}
의 집합보고 할 2 * 3 * 4
, 1 * 3 * 4
, 1 * 2 * 4
및 1 * 2 * 3
.
내가 생각할 수있는 가장 쉬운 해결책은 모든 개의 정수를 단계별로 처리하고 이들의 곱을 모두 계산하는 것입니다 (1 * 2 * 3 * 4
). 그런 다음 두 번째 단계를 거치고 나누기를 사용하여 총 곱을 각 정수로 나눕니다. 매번 솔루션을보고하십시오 (24/1, 24/2, 24/3, 24/4
).
위 작업은 선형 시간으로 실행됩니다. 교수는 또한 우리는 분열없이 그것을 할 수있는 방법을 제안했다. 공간 제한이 없으며 선형 시간 제한 만 있습니다. 나는 그것에 대해 생각했지만 빈 그림입니다. 어떤 제안?
아마도 더 나은 표현은 "'N-1 '의 정수'n' 정수, 보고서'n' 제품의 집합을 주어"되었을 것이다? 하지만 네, 부서를 사용하지 않고이 작업을 수행하는 것이 임무입니다. 다른 n_i가 없으면 매번 'n'개의 제품을 계산하십시오. –