Программа на C# занимает много памяти

программа на C# занимает слишком много памяти, как можно изменить алгоритм, чтобы она занимала до 100мб?

Выполняю задание: У телефонной компании есть большое количество 6-значных телефонных номеров. Заранее неизвестно, сколько их, но почти все возможные номера используются. Телефонная станция хранит номера в отсортированном порядке, при этом для оптимизации памяти отбрасывает ведущие нули.

Напишите программу, которая, зная все номера используемые телефонной станцией, определит список свободных номеров (их станция не хранит).

Код

using System.Text.RegularExpressions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
using System.IO;
using System.Net.Mail;
using System.Net;

namespace Tasks
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var n = Convert.ToInt32(Console.ReadLine()); //Колличество номеров
            var preNum = -1; //Предыдущий номер
            var freeNums = new List<int>(); //Свободные номера
            int num; //Текущий номер

            for(var i = 0; i < n; i++)
            {
                num = Convert.ToInt32(Console.ReadLine());
                if(preNum != -1)
                {
                    if(num - preNum != 1) //Если разница между предыдущим и текущим номером не 1, то между ними свободный номер
                    {
                        freeNums.Add(preNum + 1);                  
                    }
                    preNum = num;
                }
                else
                {
                    preNum = num;
                }
            }

            foreach (var number in freeNums) //Вывод номеров
            {
                Console.WriteLine(number);
            }
        }
    }
}

Диспетчер задач Ошибка


Ответы (1 шт):

Автор решения: Алексей Волков

Вместо добавления в список сразу выводить на экран. Список удалить.

Вопрос решён, спасибо!

→ Ссылка