![]() |
VOOZH | about |
A seven-segment display can be used to display numbers. Given an array of n natural numbers. The task is to find the number in the array that uses the minimum number of segments to display the number. If multiple numbers have a minimum number of segments, output the number having the smallest index.
Examples :
Input : arr[] = { 1, 2, 3, 4, 5 }.
Output : 1
Explanation: The element that uses the minimum number of segments is 1 ( i.e. 2 segments)Input : arr[] = { 489, 206, 745, 123, 756 }.
Output : 745
Explanation: The element with smallest index that uses the minimum number of segments is 745 ( i.e. 12 segments)
The idea is to precompute the number of segment used by digits from 0 to 9 and store it. Now for each element of the array sum the number of segment used by each digit. Then find the element which is using the minimum number of segments.
The number of segment used by digit:
0 -> 6
1 -> 2
2 -> 5
3 -> 5
4 -> 4
5 -> 5
6 -> 6
7 -> 3
8 -> 7
9 -> 6
745
Time Complexity: O(n * log10n)
Auxiliary Space: O(10)