Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.12.2022
Сообщений: 7

Одномерный массив

21.12.2022, 19:54. Показов 1208. Ответов 16
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
реализовать функцию, которая для переданного массива целых чисел найдет максимальную длину подпоследовательности подряд идущих элементов, которая состоит только из 2-х различных значений

пример: 3 2 3 1 3 2 3 3 5 3 5 4 7 4 4 8 ответ 5 (3 3 5 3 5)

помогите пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2022, 19:54
Ответы с готовыми решениями:

Создать одномерный массив А из 20 целых чисел. Создать одномерный массив Б, состоящий только из двухзначных чисел массив
Создать одномерный массив А из 20 целых чисел. Создать одномерный массив Б, состоящий только из двухзначных чисел массива А. Отсортировать...

Массив: Сформировать одномерный массив, состоящий из элементов, лежащих в интервале [1,20]
Дана целочисленная прямоугольная матрица размера М на N. Сформировать одномерный массив, состоящий из элементов, лежащих в интервале Найти...

Дан одномерный массив А, из него нам необходимо отобрать положительные нечетные элементы и записать их в новый массив
Привет, помогите с кодом следующего задания: Дан одномерный массив А, из него нам необходимо отобрать положительные нечетные элементы и...

16
 Аватар для AlexProgramm
227 / 98 / 32
Регистрация: 01.10.2022
Сообщений: 696
Записей в блоге: 47
26.12.2022, 07:36
Сложное задание
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
26.12.2022, 17:38
minqre, Подсказка. Алгоритм такой: Сравниваете последовательно рядом стоящие значения элементов.
Если значения отличаются, то увеличиваете счетчик на единицу.
0
 Аватар для AlexProgramm
227 / 98 / 32
Регистрация: 01.10.2022
Сообщений: 696
Записей в блоге: 47
26.12.2022, 20:24
1 2 3 4 5 - счетчик равен 4,что нам это даст?
2
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
26.12.2022, 21:27
Цитата Сообщение от AlexProgramm Посмотреть сообщение
1 2 3 4 5 - счетчик равен 4,что нам это даст?
Но всего цифр 5 и они различны. Тогда счетчик начинать с 1.


Вы, возможно предложили другой алгоритм?

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

Добавлено через 2 минуты
Тут я имел в виду не счетчик цикла. А переменную например int counter = 1;

Добавлено через 15 минут
minqre, вам сейчас предложено 2 алгоритма. Вы можете их не использовать и найти свой.
0
 Аватар для AlexProgramm
227 / 98 / 32
Регистрация: 01.10.2022
Сообщений: 696
Записей в блоге: 47
26.12.2022, 22:39
У меня даже нет своего алгоритма
0
0 / 0 / 0
Регистрация: 20.12.2022
Сообщений: 7
27.12.2022, 16:17  [ТС]
вы неправильно поняла задание
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
27.12.2022, 17:50
Цитата Сообщение от minqre Посмотреть сообщение
которая состоит только из 2-х различных значений
Каких значений?

У вас рядом стоящие значения должны быть равны друг другу?
У вас рядом стоящие значения должны отличаться друг от друга?

Как вы ввобще получили 3 3 5 3 5? - напишите пошагово, словами как вы получили это:3 3 5 3 5
0
0 / 0 / 0
Регистрация: 20.12.2022
Сообщений: 7
27.12.2022, 18:04  [ТС]
только из ДВУХ различных символов, то есть только 2 цифры должны встречаться в подпоследовательности и нужно найти наибольшую такую длину
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
27.12.2022, 18:08
Цитата Сообщение от minqre Посмотреть сообщение
3 2
- вот у вас 2 подряд идущие значения, они различны.
Почему в вашем ответе их нет?
0
 Аватар для IbnMong
135 / 62 / 13
Регистрация: 10.03.2022
Сообщений: 215
27.12.2022, 18:30
Вот к примеру, считаем символы которые отличаются и идут подряд:
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
import java.util.ArrayList;
 
public class ArToPrint {
 
    public static void main(String[] args) {
        int[] ar = { 3, 2, 3, 1, 3, 2, 3, 3, 5, 3, 5, 4, 7, 4, 4, 8 };
        ArrayList<Integer> arL = new ArrayList<>();
        System.out.println(" ar.length = " + ar.length);
        for (int i = 1; i < ar.length; i++) {
            System.out.print(" " + ar[i]);
        }
 
        int count = 0;
        for (int i = 1; i < ar.length; i++) {
 
            if (ar[i - 1] != ar[i]) {
                // System.out.print(" " + ar[i]);
                arL.add(ar[i]);
                count++;
            }
        }
 
        System.out.println();
        System.out.println(arL);
        System.out.println("count = " + count);
 
    }
 
}
Добавлено через 10 минут
minqre, Как у вас точно звучит задание?
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
28.12.2022, 05:56
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
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
import java.lang.reflect.Array;
import java.util.*;
import java.util.stream.StreamSupport;
 
public class Main {
    @SafeVarargs
    public static <T> T[] searchMax(T... ts) {
        return StreamSupport.stream(Spliterators.spliteratorUnknownSize(new SearcherWindow<>(ts), Spliterator.ORDERED), false)
                .max(Comparator.comparing(t -> t.length)).orElseThrow();
    }
 
    @SafeVarargs
    public static <T> T[][] searchAll(T... ts) {
        return StreamSupport.stream(Spliterators.spliteratorUnknownSize(new SearcherWindow<>(ts), Spliterator.ORDERED), false)
                .toArray(s -> (T[][]) Array.newInstance(ts.getClass(), s));
    }
 
    public static void main(String[] args) {
        System.out.println(Arrays.deepToString(searchAll(1, 2, 3, 4, 5, 6, 7)));
        System.out.println(Arrays.deepToString(searchAll(1, 2, 1, 2, 1, 2, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1)));
        System.out.println(Arrays.deepToString(searchAll(3, 2, 3, 1, 3, 2, 3, 3, 5, 3, 5, 4, 7, 4, 4, 8)));
        System.out.println(Arrays.toString(searchMax(3, 2, 3, 1, 3, 2, 3, 3, 5, 3, 5, 4, 7, 4, 4, 8)));
    }
}
 
class SearcherWindow<T> implements Iterator<T[]> {
    private final T[] arr;
    private int begin, end;
    private final int MAX_SET_SIZE = 2;
    private final HashSet<T> set;
 
    @SafeVarargs
    public SearcherWindow(T... arr) {
        this.arr = arr;
        begin = 0;
        end = 0;
        set = new HashSet<>();
    }
 
    @Override
    public boolean hasNext() {
        return end < arr.length - 1;
    }
 
    @Override
    public T[] next() {
        set.clear();
        for (int i = end; ; ++i) {
            set.add(arr[i]);
            if (set.size() > MAX_SET_SIZE) {
                set.remove(arr[i]);
                end = i - 1;
                break;
            }
            if (i == arr.length - 1) {
                end = arr.length - 1;
                break;
            }
        }
        for (int i = end; ; --i) {
            set.add(arr[i]);
            if (set.size() > MAX_SET_SIZE) {
                set.remove(arr[i]);
                begin = i + 1;
                break;
            }
            if (i == 0) {
                begin = 0;
                break;
            }
        }
        return Arrays.copyOfRange(arr, begin, end + 1);
    }
}
out
Code
1
2
3
4
[[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]]
[[1, 2, 1, 2, 1, 2], [2, 3], [3, 1, 3, 1, 3, 1], [1, 2, 1, 2, 1]]
[[3, 2, 3], [3, 1, 3], [3, 2, 3, 3], [3, 3, 5, 3, 5], [5, 4], [4, 7, 4, 4], [4, 4, 8]]
[3, 3, 5, 3, 5]
1
 Аватар для IbnMong
135 / 62 / 13
Регистрация: 10.03.2022
Сообщений: 215
28.12.2022, 20:02
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
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
 
public class SeqOfNum {
 
    private static int maxLenSeq(int[] arr) {
 
        Set<Integer> intStr = IntStream.of(arr) // сет Integer из элементов
                .boxed().collect(Collectors.toSet());
 
        int maxLen = 0;
 
        for (int i : arr) // для каждого элемента последовательности
        {
 
            if (!intStr.contains(i - 1)) // если предыдущиго элемента "i-1" не существует в наборе
            {
 
                int cur = 1; // текущий элемент
 
                while (intStr.contains(i + cur)) {// проверяем наличие элементов "i+1" … ,"i+cur" в наборе
                    cur++;
                }
 
                // результат длинной текущей
                maxLen = Math.max(maxLen, cur);
            }
        }
 
        return maxLen;
 
    }
 
    public static void main(String[] args) {
 
        int[] arr = { 3, 2, 3, 1, 3, 2, 3, 3, 5, 3, 5, 4, 7, 4, 4, 8 };
        System.out.println("Максимальная последовательность из " + maxLenSeq(arr));
 
    }
 
}

Вывод:
Bash
1
Максимальная последовательность из 5
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,498
Записей в блоге: 26
28.12.2022, 23:57
Мне задание не понятно.
В задании
Цитата Сообщение от minqre Посмотреть сообщение
из 2-х различных значений
а у вас получается
Цитата Сообщение от minqre Посмотреть сообщение
(3 3 5 3 5)
3 3 - это же одинаковые значения?
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
29.12.2022, 02:38
vvm28, подряд значит сохраняющих своё положение. Таким образом, нужно найти подпоследовательность максимальной длины в которой может быть не более двух уникальных элементов, а также она должна быть вырезкой из изначальной последовательности.
Прим:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\overbrace{3 2 3}^1 1 \overbrace{3 2 3 3}^3 5 3 5 \overbrace{4 7 4 4}^5 8\\3 2 \underbrace{3 1 3}_2 2 \underbrace{3 3 5 3 5}_4 4 7 \underbrace{4 4 8}_6
0
0 / 0 / 0
Регистрация: 20.12.2022
Сообщений: 7
29.12.2022, 19:15  [ТС]
как в задании написано, так и сюда написала
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
29.12.2022, 20:47
minqre, тебе Coffeini и ответил. Странное sliding window, но работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2022, 20:47
Помогаю со студенческими работами здесь

Дано два одномерный массив который по двум минимальным числам надо вывести на созданный третий массив
Дано два одномерный массив который по двум минимальным числам надо вывести на созданный третий массив.JAVA Как сделать ?Срочно ПОМОГИТЕ!!!

Одномерный массив
Вводится массив целых чисел. Найти наиболее длинную подпоследовательность подряд идущих элементов, которые монотонно возрастают...

Одномерный массив
Как удалить элементы одномерного массива, которые равны первому элементу. У меня получилось удалить только сам первый элемент

Одномерный рандомный массив
Как сделать одномерный рандомный массив что б в нём были и отрицательные и положительные элементы? вот допустим я создаю одномерный...

Двумерный массив в одномерный
здравствуйте, у меня есть программа: метод превращает рандомный двухмерный массив в одномерный мне ее нужно протестировать 1 для этого...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru