Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 18

Найти в массиве целых чисел самую длинную не повторяющуюся последовательность

28.01.2015, 12:35. Показов 3030. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо найти самую длинную серию. Серией называется последовательность различных чисел. Язык C#
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2015, 12:35
Ответы с готовыми решениями:

Найти самую длинную возрастающею последовательность текущей последовательности
Всем привет. Помогите решить такую задачку. Дана I-я последовательность чисел, нужно найти самую длинную возрастающею последовательность...

В заданной последовательности цифр найти самую длинную последовательность, которая является арифметической прогрессией
1.В заданной последовательности цифр найти самую длинную последовательность, которая является арифметической прогрессией. На c#

Найти самую длинную последовательность букв "а" в строке
Здравствуйте, Подскажите как реализовать на языке C# данное задание: Дана рандомная строка, Найти самую длинную...

4
 Аватар для Detect
123 / 123 / 72
Регистрация: 11.05.2014
Сообщений: 331
28.01.2015, 13:27
Лучший ответ Сообщение было отмечено ВаняБином как решение

Решение

Как-то так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespace Test {
    class Program {
        static void Main(string[] args) {
            int longestRangeLength = 0;
            int currentRangeLength;
            List<int> numbers = new List<int> {1,2,3,4,5,3,
                                               1,2,3,2,
                                               1,2,3,4,5,6,7,8,9,0,21,22,23,1,
                                               5,6,7,8,21,22,23,5,                                               
                              };
            HashSet<int> currentRange = new HashSet<int>();
            HashSet<int> longestRange = new HashSet<int>();
            
            foreach (int number in numbers) {
                if (!currentRange.Add(number)) {
                    currentRangeLength = currentRange.Count;
                    if (longestRangeLength < currentRangeLength) {
                        longestRangeLength = currentRangeLength;
                        longestRange = new HashSet<int>(currentRange);
                    }
                    currentRange.Clear();                    
                }                                
            }
            Console.WriteLine(String.Join(" ", longestRange));
            Console.WriteLine("Длина серии: " + longestRangeLength);
            Console.ReadKey();
        }
    }
}
0
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
28.01.2015, 14:17
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System;
using System.Text.RegularExpressions;
using System.Collections.Generic;
 
 
namespace Cyb6 {
    class Program {        
 
        static int[] readArray(string strMsg, int i) {
            Console.WriteLine(strMsg);
            if (i < 0) {
               i = int.Parse(read("Укажите количество элементов в одномерном массиве - ",@"^\s*[1-9][0-9]*\s*$"));
            }
            int[] aArray=new int[i];
            
            for (int j = 0; j < i; j++) 
                aArray[j] = int.Parse(read(string.Format("\t{0}\t", j+1)));
 
            return aArray;
        }
 
        static string read(string strMsg=null, string strPattern=null, object val=null) {
            bool isRepeat=true;
            string strInput=null;
            while (isRepeat) {
                if (strMsg!=null)
                    Console.Write(strMsg, val);
 
                ConsoleColor pColor=Console.ForegroundColor;
                Console.ForegroundColor=ConsoleColor.Yellow;
                strInput=Console.ReadLine();
                Console.ForegroundColor=pColor;
 
                if (strInput.Length==0 && val!=null) {
                    isRepeat=false;
                    strInput=string.Format("{0}", val);
                } else if (strPattern!=null)
                    strInput=Regex.Match(strInput, strPattern).Value;
 
                if (strInput.Length>0)
                    isRepeat=false;
            }
 
            return strInput;
        }
        static void Main() {
            //Спрашиваем массив
            int[] aA = readArray("Заполните целочисленный массив A:", -1);
            if (aA == null)
                return;
            
            //Найдем самую длинную серию
            int l=aA.Length, len=0, startInd=0;
            int maxLen=0, startIndMax=0;
 
            for (int i=0; i<l; i++) {
                for (int j=i-1; j>=i-len; j--)
                    if (aA[i]==aA[j]) {
                        if (maxLen<len) {
                            maxLen=len;
                            startIndMax=startInd;
                            j=i-len;
                        }
 
                        len=0;
                        startInd=i;
                    }
 
                len++;
            }
            if (maxLen<len) {
                maxLen=len;
                startIndMax=startInd;                
            }
 
            Console.WriteLine("Самая длинная серия из {0} чисел:", maxLen);
            for (int i=0; i<maxLen;i++)
                Console.WriteLine("\t{0}\t{1}", i+startIndMax+1, aA[i+startIndMax]);
 
                Console.ReadLine();
        }
        
    }
}
регулярки - чтоб препод кончил (до..ся)
1
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
28.01.2015, 15:28
ture, Ты меня прям удивляешь, а где же код в две строки через LINQ ? Офтоп ))))
1
 Аватар для ture
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
28.01.2015, 16:11
Лучший ответ Сообщение было отмечено ВаняБином как решение

Решение

Prog_maker, хз как. я там еще и ошибся... в общем
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2015, 16:11
Помогаю со студенческими работами здесь

Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд идущих нулей.
Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд идущих нулей.

Найти самую длинную и самую короткую строки в файле
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Подсчитать самую длинную последовательность подряд идущих букв а
Дана символьная строка. Подсчитать самую длинную последовательность подряд идущих букв а.

Вывести на экран самую длинную последовательность повторящихся символов в строке
вывести на экран самую длинную последовательность повторящихся символов в строке Большая просьба напишите пожалуйста так же входные и...

Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а
Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru