47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424

В массиве найти отрезок максимальной длины

02.02.2020, 11:52. Показов 2491. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В массиве найти отрезок максимальной длины, в котором первое число равно последнем, второе - предпоследнем и т.д. печати характеристики этого отрезка (длину и номер первого элемента). Размер массива (Nи10) задается с клавиатуры. Массив может заполнятся вручную или автоматически (из файла или с помощью функции random ()). Результат работы программы выводится на монитор и в файл (output.txt). Предусмотреть обработку ошибок.

Java
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
package pr1_5;
import java.util.*;
public class Pr1_5
{
 
    public static void main(String[] args)
    {
      Scanner in = new Scanner(System.in);
      System.out.print("Enter your N: ");
      int n = in.nextInt();
      int[] arrInt = new int[n];
      int temp;
      for(int i = 0, j = n-1; i <= n/2+1; ++i,--j)
      {
          temp = (int)(Math.random()*(200+1))-100;
          arrInt[i] = temp; 
          arrInt[j] = temp;
          
      }
      String pattern = Arrays.toString(arrInt).replaceAll(" ","")
              .substring(1).replace(']', '\0');
      
      Set<String> subPatterns = getSetSubstrFromIntArr(arrInt);
        for (String keyStr : subPatterns)
            if (pattern.indexOf(keyStr) != -1) 
            {
                System.out.println(keyStr);
                break;
            }
    }
    
    static Set<String> getSetSubstrFromIntArr(int[] arrInt) 
    {
        Set<String> strSet = new TreeSet<>(Comparator.comparing(String::length).reversed());
        StringBuilder key = new StringBuilder();
        for (int i = arrInt.length-1; i >= 0 ; i--) 
        {
            key.append(arrInt[i]).append(',');
            strSet.add(key.toString());
        }
        return strSet;
    }
Enter your N: 5
89,44,68,44,

Enter your N: 6
22,-17,-83,-83,-17,


Помогите пожалуйста исправить всё.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2020, 11:52
Ответы с готовыми решениями:

В массиве найти отрезок максимальной длины
В массиве найти отрезок максимальной длины, в котором первое число равно последнем, второе - предпоследнем и т.д. печати характеристики...

Найти отрезок по условию в массиве
В массиве a найти отрезок максимальной длины, в котором первое число равно последнему, второе - предпоследнему и т.д. Что-то начал...

Найти отрезок максимальной длины в массиве А
Найти отрезок максимальной длинны в массиве А из К элементов и вывести его на экран ,состоящий из элементов данного массива по правилу...

18
02.02.2020, 14:24

Не по теме:

Это ж надо до такого алгоритма додуматься! Огонь

0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
02.02.2020, 17:41  [ТС]
iSmokeJC, ну он правильный?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.02.2020, 18:17
Shelleex1337, а он выдает правильный ответ?
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
02.02.2020, 18:31  [ТС]
iSmokeJC, Скорее всего нет
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.02.2020, 18:41
Ну вот и ответ на твой вопрос
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
02.02.2020, 19:42
Shelleex1337,

Java
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
public class Start {
    public static void main(String[] args) {        
        int[] array = {5,1,8,3,1,9,7,1,5,7,2,9,2,7,5};      
        int pos1 = 0;
        int pos2 = 0;
        
        for (int i = 1; i < array.length - 1; i++) {
            int aux1 = 0;
            int aux2 = 0;
            
            for (int j = 1; i - j >= 0 && i + j < array.length; j++) {
                if (array[i - j] == array[i + j]) {
                    aux1 = i - j;
                    aux2 = i + j;
                    
                    System.out.println("[" + aux1 + "]" + array[aux1] + " [" + aux2 + "]" + array[aux2]);
                }
                else {
                    break;
                }
            }           
                        
            if (aux2 - aux1 > pos2 - pos1) {
                pos1 = aux1;
                pos2 = aux2;
            }
        }   
        
        System.out.println("Position: " + pos1 + ", size: " + (pos2 - pos1 + 1));
    }
}
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
02.02.2020, 22:33  [ТС]
Kukstyler,
Enter your N: 5
55 36 182 36 55 [1]36 [3]36
[0]55 [4]55
Position: 0, size: 5
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
02.02.2020, 23:06
Shelleex1337, и?
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
02.02.2020, 23:18  [ТС]
Kukstyler, просто чутка не понимаю как это отрезок максимальной длины
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
02.02.2020, 23:51
Лучший ответ Сообщение было отмечено xoraxax как решение

Решение

Shelleex1337, я Вам дал алгоритм, способ поиска. По коду видно, что там не хватает кое-чего из задания. Вам надо доделать его, возможно немного адаптировать.

Данный код находит последовательность, указанную в задании и выдаёт начальную позицию последовательности и количество элементов:

Code
1
2
 0  1   2  3 4   5  6
55 36 182 36 55 36 36
У Вас 7 элементов, начиная с 0-ой позиции длинной 5 элементов, последовательность совпадает критериям :

Code
1
2
3
4
  _____ = _____
 |   __ = __   |
 |  |       |  |
55 36  182 36 55
Что непонятно?
1
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
03.02.2020, 00:00  [ТС]
Kukstyler,
Java
1
2
aux1 = i - j;
aux2 = i + j;
Java
1
2
pos1 = aux1;
pos2 = aux2;
Что это делает?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
03.02.2020, 00:05

Не по теме:

нихрена не понял, но очень интересно! (С)

1
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
03.02.2020, 01:17
Shelleex1337, aux - это вспомогательные/временные переменные, то есть не содержащие окончательный результат. Остальные выводы делайте сами.
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
03.02.2020, 01:42  [ТС]
Kukstyler, я просто не понимаю ваш алгоритм, и как эго переделать под мое условие.

Добавлено через 1 минуту
Возможно, если бы вы пояснили алгоритм, я бы передал.
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
03.02.2020, 11:02
Shelleex1337, я не могу понять, что Вы не понимаете... Там от силы 20 строчек кода. Пройдитесь дебагам в конце концов. Там элементарные циклы for....
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
03.02.2020, 17:11  [ТС]
Kukstyler, а отрезок максимальной длины это как? А то запутался.
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,307
03.02.2020, 18:03
Shelleex1337, так ВЫ оказца самого задания не понимаете, а не как его сделать?!
0
47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
03.02.2020, 18:18  [ТС]
Kukstyler, ну как эго сделать пока что тоже, но условие я слабо понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2020, 18:18
Помогаю со студенческими работами здесь

Как в массиве найти отрезок максимальной длины
Помогите пожалуйста задачку решить. Дан массив целых чисел. Рассмотреть отрезки массива, состоящие из нечетных чисел. Получить...

В массиве найти отрезок максимальной длины, в котором первое число равно последнему
дан массив в массиве а найти отрезок максимальной длины в котором первое число равно последнему второе &quot;предпоследнему.....&quot;

В массиве найти отрезок максимальной длины, в котором первое число равно последнему, второе - предпоследнему и т.д. Напечатать характеристики этого от
Помогите ребят!!!!препод задачи задачи для аттестации,сделал фактически все,кроме этой: &quot;В массиве найти отрезок максимальной длины,...

Найти отрезок максимальной длины
Із множини заданих на площині відрізків сформувати підмножину відрізків, що перетинають пряму , та підмножину відрізків, що перетинають...

Найти отрезок массива максимальной длины, в котором первое число равно последнему
массивы..


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru