Новый подход: если ваш массив чисел представляет собой уникальные целые числа, вы можете записать их как закодированный «набор битов» для длины серии. Это дало бы очень компактное представление, означающее меньшее количество операций ввода-вывода. Я бы предложил этот подход для хранения очень больших массивов уникальных целых чисел.
Например, предположим, что ваш массив содержит значения [1 ,2 ,3 ,5 ,9]
, ваш набор битов будет выглядеть так:
[1, 0, 0, 0, 1, 0, 1, 1, 1]
... и ваш кодированный бит RLE будет:
013113
... что интерпретируется как «0 нулей, 1 один, 3 нуля, 1 один и т. Д.».
Вы можете сохранить строку в кодировке RLE в виде символов или использовать двоичный формат.