package
0.0.0-20241221191246-b80a13d7bbe0
Repository: https://github.com/yvv4git/go-algorithms.git
Documentation: pkg.go.dev

# README

179. Largest Number

Level - medium

Task

Given a list of non-negative integers nums, arrange them such that they form the largest number and return it.

Since the result may be very large, so you need to return a string instead of an integer.

Объяснение

Это задача, в которой необходимо найти наибольшее число, которое можно составить из списка чисел.

Например, если у нас есть список чисел [3, 30, 34, 5, 9], наибольшее число, которое можно составить, будет 9534330.

Основная сложность в этой задаче заключается в том, что необходимо определить правильный порядок чисел, чтобы получить наибольшее возможное число. Для этого необходимо реализовать кастомную сортировку, которая будет сравнивать два числа как строки и определять, какое из них должно стоять раньше в итоговой последовательности.

Например, для чисел 3 и 30, мы должны сравнить '330' и '303', и выбрать большее. Если '330' больше, то 3 должно стоять перед 30 в итоговой последовательности.

Если в итоговой последовательности будет содержаться только нули, то результат должен быть '0', а не просто '000...0'.

В итоге, задача сводится к реализации правильной сортировки и последующему объединению отсортированных чисел в одно число.

Example 1:

Input: nums = [10,2]
Output: "210"

Example 2:

Input: nums = [3,30,34,5,9]
Output: "9534330"

Constraints:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 10^9