>백엔드 개발 >PHP 튜토리얼 >. 가장 큰 숫자

. 가장 큰 숫자

DDD
DDD원래의
2024-09-19 06:21:07594검색

. Largest Number

179. 가장 큰 숫자

난이도:

주제: 배열, 문자열, 탐욕, 정렬

음수가 아닌 정수 숫자 목록이 주어지면 가장 큰 숫자가 되도록 배열하여 반환합니다.

결과가 매우 클 수 있으므로 정수가 아닌 문자열을 반환해야 합니다.

예 1:

  • 입력: 숫자 = [10,2]
  • 출력: "210"

예 2:

  • 입력: 숫자 = [3,30,34,5,9]
  • 출력: "9534330"

제약조건:

  • 1 <= nums.length <= 100
  • 0 <= 숫자[i] <= 109

해결책:

연결된 결과를 기준으로 숫자를 비교해야 합니다. 두 숫자 a와 b에 대해 ab(a와 b의 연결)와 ba(b와 a의 연결)를 비교하여 어느 쪽이 더 큰 숫자인지에 따라 순서를 결정합니다.

접근하다:

  1. 사용자 정의 정렬: 연결된 결과를 비교하여 숫자를 정렬하는 사용자 정의 비교 기능을 구현합니다.
  2. Edge Case: 정렬 후 가장 큰 숫자가 0이면 모든 숫자가 0이어야 하므로 결과는 "0"입니다.
  3. 연결: 정렬 후 숫자를 연결하여 최종 결과를 만듭니다.

이 솔루션을 PHP로 구현해 보겠습니다. 179. 가장 큰 숫자






설명:

  1. usort($nums, $comparator): 사용자 정의 비교기를 사용하여 배열을 정렬합니다. 각 숫자 a와 b 쌍에 대해 연결된 문자열 a를 비교합니다. 비와 비. 가.
  2. 비교 논리: strcmp($order2, $order1)는 연결된 문자열을 기반으로 내림차순을 얻도록 보장합니다.
  3. 에지 케이스 처리: 연결된 결과 문자열의 첫 번째 문자가 0이면 "0"을 반환합니다. 이는 배열의 모든 요소가 0일 때 발생합니다.
  4. 시간 복잡도: 숫자를 정렬하는 데는 O(n log n)가 걸리고, 숫자를 연결하는 데는 O(n)이 걸립니다. 여기서 n은 입력 배열의 숫자 수입니다.

이 솔루션은 제약 조건을 효율적으로 처리하고 가능한 가장 큰 숫자를 문자열로 반환합니다.

연락처 링크

이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!

이런 유용한 콘텐츠를 더 원하시면 저를 팔로우해주세요.

  • 링크드인
  • 깃허브

위 내용은 . 가장 큰 숫자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.