> 백엔드 개발 > C++ > 주어진 숫자를 삽입하여 형성된 가장 작은 숫자를 찾으십시오.

주어진 숫자를 삽입하여 형성된 가장 작은 숫자를 찾으십시오.

王林
풀어 주다: 2023-09-08 20:29:06
앞으로
765명이 탐색했습니다.

주어진 숫자를 삽입하여 형성된 가장 작은 숫자를 찾으십시오.

주어진 숫자에 숫자를 삽입한다는 것은 주어진 숫자에 숫자 앞, 뒤 또는 중간에 새 숫자를 추가하는 것을 의미합니다. 우리는 숫자와 숫자를 받았고 가능한 한 작은 방법으로 그 숫자를 숫자에 추가해야 합니다. 삽입 작업을 용이하게 하기 위해 숫자를 문자열로 변환하겠습니다. 게다가 주어진 숫자는 음수일 수도 있으므로 이 경우를 고려해야 합니다.

예제 예

Input1

의 중국어 번역은

Input 1

입니다. 으아아아

설명 − 주어진 숫자를 더할 수 있는 곳이 4군데 있으며 결과는 3124, 1324, 1234, 1243이 될 수 있습니다. 네 개 중에서 두 번째가 가장 작은 것입니다.

Input2

의 중국어 번역은

Input 2

입니다. 으아아아

설명 − 주어진 숫자를 더할 수 있는 위치가 4군데 있으며 결과는 -3124, -1324, -1234, -1243이 될 수 있습니다. 네 개 중 첫 번째가 가장 작습니다.

Naive Approach

의 중국어 번역은

Naive Approach

입니다.

이제 예시를 살펴봤으니 문제 해결을 위해 수행할 단계를 살펴보겠습니다. -

  • 먼저 현재 숫자가 양수인지 음수인지 확인하겠습니다.

  • 현재 숫자가 음수이면 음수 변수로 표시하고 현재 숫자를 양수로 만듭니다.

  • 이후에는 현재 숫자를 문자열로 변환하고 현재 숫자가 양수인지 음수인지에 따라 함수 기반을 호출합니다.

  • 이 함수에서는 각 위치에 숫자를 맞추고 양수 또는 음수를 기준으로 현재 숫자가 더 작은지 큰지 확인합니다.

  • 현재 숫자가 양수이면 가장 작은 숫자를 찾아 반환해 보겠습니다.

  • 그렇지 않으면 가장 큰 숫자를 찾아 -1을 곱하여 반환합니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

으아아아

출력

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N*N)입니다. 여기서 N은 주어진 숫자의 자릿수입니다.

위 코드의 공간 복잡도는 O(N)입니다. 여기서 N은 주어진 숫자의 자릿수입니다.

효율적인 방법

이전 방법에서는 각 숫자를 확인하여 주어진 숫자보다 큰 첫 번째 숫자를 찾은 다음 이를 추가하고 자체적으로 반환하는 효율적인 방법입니다. 음수의 경우 더 작은 숫자를 찾아 더한 후 반환합니다.

코드를 살펴보자−

Example

의 중국어 번역은 다음과 같습니다:

Example

으아아아

출력

으아아아

시간과 공간의 복잡성

위 코드의 시간 복잡도는 O(N)입니다. 여기서 N은 주어진 숫자의 자릿수입니다.

위 코드의 공간 복잡도는 O(N)입니다. 여기서 N은 주어진 숫자의 자릿수입니다.

결론

이 튜토리얼에서는 주어진 숫자에 숫자를 삽입하는 방법, 즉 숫자 앞, 뒤 또는 사이에 새로운 주어진 숫자를 추가하는 방법을 구현했습니다. 우리는 두 가지 방법을 보았습니다. 하나는 시간 복잡도 O(N*N)이고 다른 하나는 시간 복잡도 O(N)입니다. 두 방법의 공간 복잡도는 O(N)입니다.

위 내용은 주어진 숫자를 삽입하여 형성된 가장 작은 숫자를 찾으십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿