Программа на 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 шт):
Автор решения: Алексей Волков
→ Ссылка
Вместо добавления в список сразу выводить на экран. Список удалить.
Вопрос решён, спасибо!

