powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / LeetCode in Java
25 сообщений из 103, страница 4 из 5
LeetCode in Java
    #40121049
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
... Иначе во всех листовых узлах будет 26 пустых элементов.

В этом соль.
26 - исходный размер узла перворожденного трай - по числу букв латинского алфавита.

Это старейшая из поисковых структур, конца 50х годов 20го века изобретения.
К 80м стандартным стал узел на 255 элементов, по потом, с появлением юникода было решено,
что трай целиком негодная идея для современного использования - 1000 элементов на узел даже для Intel Pentium P5 многовато.

Между тем, в последние лет 10, то здесь то там, появляются попытки построить поисковые индексы для субд на той или иной модификации трай.

То есть, структура реально вновь ожила и "спросить могут"...
...
Рейтинг: 0 / 0
LeetCode in Java
    #40121054
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потери еще могут быть за счет длинных цепочек которые не ветвятся. Можно было-бы отказаться от
хранения 1 символа на узел и сделать string. Будет сложнее смёрживать новые слова, зато хранение
будет компактнее.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40121083
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
... Можно было-бы отказаться от
хранения 1 символа на узел и сделать string....

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

В целом, с этим обходятся.
Для in-memory database есть случаи живого применения, там используемые вариации зовут Patricia Trie и Heigh Optimized Trie.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124377
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вышла новая версия библиотеки 1.5.

- Added tasks 335-503
- Improved generatemd tool

С уважением, Валентин
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124471
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересная задача 349.

349. Intersection of Two Arrays

Easy

Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.

Example 1:

Input: nums1 = [1,2,2,1], nums2 = [2,2]

Output: [2]

Example 2:

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]

Output: [9,4]

Explanation: [4,9] is also accepted.

Constraints:

1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000

Решение

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        boolean[] occ = new boolean[1001];
        for (int i = 0; i < nums1.length; i++) {
            occ[nums1[i]] = true;
        }
        List<Integer> res = new ArrayList<>();
        for (int i = 0; i < nums2.length; i++) {
            if (occ[nums2[i]]) {
                occ[nums2[i]] = false;
                res.add(nums2[i]);
            }
        }
        int[] result = new int[res.size()];
        for (int i = 0; i < res.size(); i++) {
            result[i] = res.get(i);
        }
        return result;
    }
}
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124482
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С такими ограничениями

Код: java
1.
2.
3.
4.
Constraints:

1 <= nums1.length, nums2.length <= 1000
0 <= nums1, nums2[i] <= 1000


не особо интересно. Какая-то детская игра.

Если-б я собеседовал - то сказал-бы - [i]А давайте сейчас предположим что число у нас - диапазона int и оба
массива по 2 млрд.
И мне не надо решение в виде кода. А просто - рассказать как нужно искать пересечение
и какие могут быть по ходу решения проблемы.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124485
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

это ваще не интересно, хоть два триллиарда.

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

В показанной "детской игре" тоже есть сортировка, кстати, а-ля радикс сорт.
Если известно, что массивы сильно не равны, то выгоднее сортировать только тот, который много меньше другого,
с любым вариантом поиска по сортированному - от бинарного до индексного.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124486
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если форсировать FIRST_ROWS (как в оракле) то я-бы предположил что и достаточно только один сортировать.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124487
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, строить из меньшего любого рода бинарное дерево поиска - это простой способ обеспечения уникальности элемента в выходном потоке. А к мержу надо пристраивать флаг типа "значение уже уехало в выходной поток".

насчет один сортировать или оба - это от размера задачи может оказаться сильно зависимым, и местополежения флага "этот уже выброшен" .
два много.улиардных массива можно внешней сортировкой отсортировать, а у самого мержа нет требований по памяти.
Держать даже лишь один сортированный массив в памяти может оказаться в конце концом излишне дороговато.
На совсем больших объемах чистый merge-sort может оказаться вообще единственным разумным заходом.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124488
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На низко-кардинальных данных можно всё собрать подсчетом. Опять-же если мы хотя-бы обладаем
примерно сведеньями о том какая гистограмма данных к нам прилетит.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40124490
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

"подсчет" - для низкокардинальных в смысле количества уникальных значений наборов - это sort group by.
Это ходьба по кругу - если заранее известно, что хотя бы один из наборов достоверно такой - то естественно переходим формированию единственного ведущего множества.
А если заранее понятно, что все равно на диск падать и в память не попадаем - то просто merge sort два раза + merge distinct values
...
Рейтинг: 0 / 0
LeetCode in Java
    #40130546
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже 800 задач добавлено.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40130915
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вышла новая версия библиотеки 1.6.

- Added tasks 504-810
- Improved generatemd tool

С уважением, Валентин
...
Рейтинг: 0 / 0
LeetCode in Java
    #40131795
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересная задача

529. Minesweeper

Let's play the minesweeper game ( Wikipedia, online game )!

https://github.com/javadev/LeetCode-in-Java/tree/main/src.save/main/java/g0501_0600/s0529_minesweeper

Решение:

Код: 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.
public class Solution {
    private static final int[][] DIRECTION = {
        {1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, -1}, {-1, 1}, {1, -1}, {1, 1}
    };

    private int row;
    private int col;

    private void dfs(char[][] board, int row, int col) {
        if (row < 0 || row >= this.row || col < 0 || col >= this.col) {
            return;
        }
        if (board[row][col] == 'E') {
            int numOfMine = bfs(board, row, col);
            if (numOfMine != 0) {
                board[row][col] = (char) (numOfMine + '0');
                return;
            } else {
                board[row][col] = 'B';
            }
            for (int[] i : DIRECTION) {
                dfs(board, row + i[0], col + i[1]);
            }
        }
    }

    private int bfs(char[][] board, int row, int col) {
        int numOfMine = 0;

        for (int[] i : DIRECTION) {
            int newRow = row + i[0];
            int newCol = col + i[1];
            if (newRow >= 0
                    && newRow < this.row
                    && newCol >= 0
                    && newCol < this.col
                    && board[newRow][newCol] == 'M') {
                numOfMine++;
            }
        }

        return numOfMine;
    }

    public char[][] updateBoard(char[][] board, int[] c) {
        if (board[c[0]][c[1]] == 'M') {
            board[c[0]][c[1]] = 'X';
            return board;
        } else {
            row = board.length;
            col = board[0].length;
            dfs(board, c[0], c[1]);
        }
        return board;
    }
}
...
Рейтинг: 0 / 0
LeetCode in Java
    #40135494
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1000 задач добавлено.

👍🎂🎉🔥😎
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136162
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov,
а какой смысл я не пойму? там же в дискусе все решения есть,а в интернетах есть решения с объяснениями -почему так или этак

прихожу к выводу ,что ваш проект для людей,которые не осилили интрефейс LeetCode и параллельно забанены в гугле)))
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136354
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep,

Хочется решить все задачи, которые есть в leetcode и разместить их в одной библиотеке.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136622
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kolesnikov
adminDontSleep,

Хочется решить все задачи, которые есть в leetcode и разместить их в одной библиотеке.

а вы не рассматриваете тот факт ,что задачи могут обновляться и пересматриваиться, а так же прибавляться кратно

В чем сакральный смысл вашей библиотеки?
Этот ресурс нужен для проверки своих знаний алгоритмов и структур данных

Я бы вас понял если бы на пальцах обьясняли почему вот так и так,какое время поиска получаеся и почему и тд
но у вас голое решение - которое даже не конкурирует с Discuss

фактически ваша либа перебивается любым парсером правильно натравленым на /discuss

Валентин не занимайтесь вы ерундой - это никому не надо и не будет востребовано,если хотите качественный ресурс - вам нужно все решения откоментить и обосновать,привести примеры плохих решений ,все это как привести к общему знаменателю
+ добавить ссылки на конкретные страницы книг - где описываются данные решения
вот тогда ваша идея заиграет новыми красками - сейчас же это просто никому не нужно в таком виде

пс тем более это никому не нужно на джва ибо тут уже реализованы и сортировки и прочие алгоритмические чудеса)
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136627
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему-же. Ресурс хороший.

Просто вот хочется по каждой задаче иметь хотя-бы 2-3 версии решения с комментариями.
Например одна - оптимизирована по памяти. Другая там ... еще по какому-то критерию.
Например по o(n).

Вобщем такой вариант "лобового" решения когда задача решена и точка - неинтересен.
Где дискурс? Это безальтернативный вариант?

По поводу Java. Несколько лет назад я искал FFT (быстрое преобразование Фурье) и нашел
кодо-генератор который решает эту задачу для целой линейки языков. Тоесть алгоритм стоял
во главе решения а язык просто был бэкендом этого алгоритма.

Вот если-бы подумать в этом направлении? Есть алгоритм? - Можно сгенерить Java/Kotlin/Python
по шаблону. Это было-бы интересно.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136637
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
...
тем более это никому не нужно...

(и mayton тоже)
Вы оба путаете личную историю и общественную пользу.
Некто решил 500 задач с литкода, а кто-то целую тысячу.
Вот и все.

Топикстартера несколько раз провоцировали на какое-то подобие обсуждения,
но вместо этого получали доклады о новом списке решенных задач.

Какое это вообще имеет значение - кому это нужно, и что лично вы по этому поводу думаете,
если еще не все задачи из текущего списка решены и выложены на гитхаб.

Это частный топик, человек говорит сам с собой.
Не надо ему мешать.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136648
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby

Это частный топик, человек говорит сам с собой.

Вот вообще не согласен. Категорически не согласен.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136684
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
Valentin Kolesnikov
adminDontSleep,

Хочется решить все задачи, которые есть в leetcode и разместить их в одной библиотеке.

а вы не рассматриваете тот факт ,что задачи могут обновляться и пересматриваиться, а так же прибавляться кратно

В чем сакральный смысл вашей библиотеки?
Этот ресурс нужен для проверки своих знаний алгоритмов и структур данных

Это общедоступная библиотека в которой собраны все решения.

Я бы вас понял если бы на пальцах обьясняли почему вот так и так,какое время поиска получаеся и почему и тд
но у вас голое решение - которое даже не конкурирует с Discuss

Это решения из Discuss.

фактически ваша либа перебивается любым парсером правильно натравленым на /discuss

Не знаю, сомневаюсь.

Валентин не занимайтесь вы ерундой - это никому не надо и не будет востребовано,если хотите качественный ресурс - вам нужно все решения откоментить и обосновать,привести примеры плохих решений ,все это как привести к общему знаменателю
+ добавить ссылки на конкретные страницы книг - где описываются данные решения

У каждой задачи есть номер. Можно по номеру найти ее в LeetCode.

вот тогда ваша идея заиграет новыми красками - сейчас же это просто никому не нужно в таком виде

Я считаю что польза есть от библиотеки.

пс тем более это никому не нужно на джва ибо тут уже реализованы и сортировки и прочие алгоритмические чудеса)


Есть похожая библиотека на kotlin.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136685
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
adminDontSleep
...
тем более это никому не нужно...

(и mayton тоже)
Вы оба путаете личную историю и общественную пользу.
Некто решил 500 задач с литкода, а кто-то целую тысячу.
Вот и все.

Топикстартера несколько раз провоцировали на какое-то подобие обсуждения,
но вместо этого получали доклады о новом списке решенных задач.

Какое это вообще имеет значение - кому это нужно, и что лично вы по этому поводу думаете,
если еще не все задачи из текущего списка решены и выложены на гитхаб.

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


Отчего же. Я прислушиваясь к комментариям.
...
Рейтинг: 0 / 0
LeetCode in Java
    #40136818
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вышла новая версия библиотеки 1.7.

- Added tasks 811-1108
- Improved generatemd tool

С уважением, Валентин
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
LeetCode in Java
    #40137698
Фотография Конвертатор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доступна обновленная версия библиотеки 1.22

- Added tasks 2542-2545
- Improved generatemd tool
...
Рейтинг: 0 / 0
25 сообщений из 103, страница 4 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / LeetCode in Java
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]