Найти все различные трехзначные числа из заданного массива цифр
Дан массив, содержащий digits[] , где каждый элемент представляет собой однозначное целое число. Массив может содержать дубликаты. Задача состоит в том, чтобы найти все уникальные целые числа, соответствующие заданным требованиям:
- Целое число состоит из конкатенации трех элементов из цифр в произвольном порядке.
- Целое число не имеет лидирующих нулей.
Примеры:
Input: digits[] = {2, 1, 3, 0}
Output: {102, 103, 120, 123, 130, 132, 201, 203, 210, 213, 230, 231, 301, 302, 310, 312, 320, 321}
Explanation: The above are the three digit numbers formed.Input: digits[] = {3, 7, 5}
Output: [357, 375, 537, 573, 735, 753 ]
Подход: Эту проблему можно решить с помощью карты частот . Найти количество всех элементов в заданном массиве цифр. Выполните следующие шаги, чтобы решить данную проблему.
- Проверьте все числа от 100 до 999 , могут ли они быть образованы цифрами, присутствующими в векторе цифр.
- Используйте 2 карты для одного и того же. Если число можно составить, то добавьте его к ответу.
- В конце верните ответ.
Ниже приведена реализация вышеуказанного подхода:
Сложность времени: О(1000)
Вспомогательное пространство: O(N)