>  기사  >  백엔드 개발  >  숫자의 우선순위에 따라 변환은 다음과 같습니다. 숫자의 우선순위에 따라 다음으로 큰 숫자

숫자의 우선순위에 따라 변환은 다음과 같습니다. 숫자의 우선순위에 따라 다음으로 큰 숫자

王林
王林앞으로
2023-08-28 08:45:101182검색

숫자의 우선순위에 따라 변환은 다음과 같습니다. 숫자의 우선순위에 따라 다음으로 큰 숫자

일반 숫자 체계에서는 0이 가장 작은 숫자이고 9가 가장 큰 숫자입니다. 이 문제에서 우리는 길이가 10인 목록을 얻을 것입니다. 인덱스 0부터 인덱스 9까지는 해당 숫자의 우선순위를 나타내는 숫자를 나타내며, 목록은 오름차순으로 표시됩니다. 이는 마지막 인덱스에 나타나는 숫자가 가장 높은 우선순위를 가짐을 의미합니다. 또한 숫자가 주어지며 현재 숫자보다 약간 큰 다음 숫자를 찾아야 합니다.

으아아아

설명

주어진 우선순위 배열에서 1이 2와 3보다 우선순위가 높다는 것을 알 수 있습니다. 3이 2보다 우선순위가 높습니다. 따라서 주어진 숫자의 다음 순열은 2와 3을 교환하여 달성됩니다.

으아아아

설명

주어진 우선순위 배열에서 1의 우선순위가 2와 3 모두보다 크다는 것을 알 수 있습니다. 3의 우선순위는 2의 우선순위보다 큽니다. 따라서 사용 가능한 다음 순열은 없습니다.

방법

이 접근 방식에서는 C++ 프로그래밍 언어에서 제공하는 표준 템플릿 라이브러리(STL) 개념을 사용하여 다음 순열을 얻습니다. −

  • 먼저 다음 숫자의 숫자와 숫자의 우선순위를 오름차순으로 나타내는 배열을 가져옵니다.

  • 미리 정의된 함수를 호출하여 현재 주어진 숫자보다 큰 다음 숫자를 찾습니다.

  • 주어진 숫자와 배열을 매개변수로 받는 함수를 정의하겠습니다.

  • 전역 배열을 정의하고 나중에 사용할 수 있도록 주어진 배열에서 가져온 각 숫자의 우선순위를 저장합니다.
  • 다음 순열 함수를 적용하기 위해 주어진 숫자를 문자열로 변환합니다.

  • stl의 다음 순열 함수에서 문자열의 문자를 비교하는 데 사용할 사용자 정의 함수를 정의합니다.

  • 다음 순열을 얻은 후 문자열을 정수로 변환하고 그 반대로 변환합니다.
  • Example
  • 의 중국어 번역은 다음과 같습니다:

    Example

    으아아아
  • 출력
으아아아

시간과 공간의 복잡성

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

위 코드의 공간 복잡도는 O(N)입니다. 왜냐하면 다음 순열 함수를 사용하기 위해 새 문자열을 생성하기 때문입니다.

참고

: 현재 숫자가 모든 순열 중에서 더 큰 숫자인 경우 다음 순열 함수는 false를 반환하고 다음 순열이 존재하지 않기 때문에 동일한 숫자를 반환합니다.

결론

이 튜토리얼에서는 현재 숫자보다 큰 다음 숫자를 찾는 코드를 구현했지만 숫자의 우선순위는 0부터 9까지의 순서가 아니라 별도의 배열로 제공됩니다. 우리는 STL 함수 next_permutation과 사용자 정의 함수를 사용하여 새로운 우선순위에 따라 다음 숫자를 가져왔습니다. 위 코드의 시간복잡도와 공간복잡도는 O(자릿수)이다.

위 내용은 숫자의 우선순위에 따라 변환은 다음과 같습니다. 숫자의 우선순위에 따라 다음으로 큰 숫자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제