Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Не понимаю, в чем ошибка. / 25 сообщений из 68, страница 1 из 3
12.07.2020, 08:57
    #39978553
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Решаю задачу на leetcode, смысл которой в том, чтобы из целочисленного массива вывести все различные списки Integer'ов, состоящих из 3 чисел таких, что их сумма равна 0 и оформить их в виде списка, то есть будет List<List<Integer>> на выходе. Не понимаю, в чем ошибка, когда тамошний компилятор пишет такое.
<code>
class Solution
{
public List<List<Integer>> threeSum(int[] nums)
{
List<Integer> listOfIntegers = new ArrayList<>();
List<List<Integer>> list = new ArrayList<>();
int M = 0;

if(nums.length == 0)
{
return list;
}

for(int i = 0; i < nums.length - 2; i += 2)
{
for(int j = i + 1; j < nums.length - 1; j++)
{
labelK: for(int k = i + 2; k < nums.length; k++)
{
if(nums[i] + nums[j] + nums[k] == 0)
{
listOfIntegers = List.of(nums[i], nums[j], nums[k]);
list.add(listOfIntegers);
M++;
}
else { continue labelK; }
}
}
}

if(M == 1) { return list; }
else
{
for(int l = 0; l < M - 1; l++)
{
labelM: for(int m = l + 1; m < M; m++)
{
if(list.get(m).containsAll(list.get(l)))
{
list.remove(m);
M = M - 1;
}
else { continue labelM; }
}
}
}
return list;
}
}

Wrong Answer
Runtime: 0 ms
Your input
[0,0,0,0]
Output
[[0,0,0],[0,0,0]]
Expected
[[0,0,0]]

</code>
...
Рейтинг: 0 / 0
12.07.2020, 09:58
    #39978559
Sergunka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Alexandrietz
Решаю задачу на leetcode, смысл которой в том, чтобы из целочисленного массива вывести все различные списки Integer'ов, состоящих из 3 чисел таких, что их сумма равна 0 и оформить их в виде списка, то есть будет List<List<Integer>> на выходе. Не понимаю, в чем ошибка, когда тамошний компилятор пишет такое.
<code>
Код: 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.
class Solution 
{
    public List<List<Integer>> threeSum(int[] nums) 
    {
        List<Integer> listOfIntegers = new ArrayList<>();
        List<List<Integer>> list = new ArrayList<>();
        int M = 0;
        
        if(nums.length == 0)
        {
            return list;
        }
        
        for(int i = 0; i < nums.length - 2; i += 2)
        {
            for(int j = i + 1; j < nums.length - 1; j++)
            {
                labelK: for(int k = i + 2; k < nums.length; k++)
                {
                    if(nums[i] + nums[j] + nums[k] == 0)
                    {
                        listOfIntegers = List.of(nums[i], nums[j], nums[k]);
                        list.add(listOfIntegers);
                        M++;
                    }
                    else { continue labelK; }
                }
            }
        }
        
        if(M == 1) { return list; }
        else
        {
            for(int l = 0; l < M - 1; l++)
            {
                labelM: for(int m = l + 1; m < M; m++)
                {
                    if(list.get(m).containsAll(list.get(l)))
                    {
                        list.remove(m);
                        M = M - 1;
                    }
                    else { continue labelM; }
                }
            }
        }
        return list;
    }
}


Wrong Answer
Runtime: 0 ms
Your input
[0,0,0,0]
Output
[[0,0,0],[0,0,0]]
Expected
[[0,0,0]]

</code>


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

На самом деле дайте ссылку на задачу. Там с десяток в решений уже готовых опубликовано.
...
Рейтинг: 0 / 0
12.07.2020, 10:21
    #39978563
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Alexandrietz, перед тем как кинуться кодить - расскажи словами как ты сам себе понял задачу.

Your input
Код: java
1.
[0,0,0,0]



Expected
Код: java
1.
[[0,0,0]]



На вход пришел вектор из 4х элементов. На выходе - вектор векторов.

А если я подам на вход

Input
Код: java
1.
[2,3,5,7]



Что ты ожидаешь на выходе?

В подобного рода задачах (алгоритмизация, олимпиадные задчи и контестеры)
важен не java код, а важно твоё понимание тест-кейсов и всех-всех алгоритмических исходов решения.

Если у тебя этого понимания нет - то jav-ой заниматься еще рано. Это будет
зря потраченное время.
...
Рейтинг: 0 / 0
12.07.2020, 10:32
    #39978566
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
mayton,

Немного подправил
Код: html
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.
class Solution 
{
    public List<List<Integer>> threeSum(int[] nums) 
    {
        List<Integer> listOfIntegers = new ArrayList<>();
        List<List<Integer>> list = new ArrayList<>();
        int M = 0;
        
        if(nums.length == 0)
        {
            return list;
        }
        
        for(int i = 0; i < nums.length - 2; i++)
        {
            for(int j = i + 1; j < nums.length - 1; j++)
            {
                labelK: for(int k = i + 2; k < nums.length; k++)
                {
                    if(nums[i] + nums[j] == -nums[k])
                    {
                        listOfIntegers = List.of(nums[i], nums[j], nums[k]);
                        list.add(listOfIntegers);
                        M++;
                    }
                    else { continue labelK; }
                }
            }
        }
        
        if(M == 1 || M == 0) { return list; }
        else
        {
            for(int l = 0; l < M - 1; l++)
            {
                labelM: for(int m = l + 1; m < M; m++)
                {
                    if(list.get(m).containsAll(list.get(l)))
                    {
                        list.remove(m);
                        M--;
                        m--;
                    }
                    else { continue labelM; }
                }
            }
        }
        return list;
    }
}

Input
[3,0,-2,-1,1,2]
Output
[[3,-2,-1],[0,-2,2],[0,-1,1],[-2,1,1]]
Expected
[[-2,-1,3],[-2,0,2],[-1,0,1]]
...
Рейтинг: 0 / 0
12.07.2020, 10:36
    #39978568
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
mayton,

Просто что пришло в голову, то и написал
...
Рейтинг: 0 / 0
12.07.2020, 11:01
    #39978573
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
mayton,

Однако я знаю, что это решение просто отвратительно, так как оно O(N^3).
...
Рейтинг: 0 / 0
12.07.2020, 11:04
    #39978574
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Я бы сделал простейшую проверку на существование отрицательных. Или знакопеременных чисел в input.

Это инвариант.

И далее ищи генерацию сочетаний 3 из n.

Любой алгоритм. Но он должен быть рекурсивным. Это мое пожелание по качеству самой реализации. Для 3х элементов у ленивого кодера будет соблазн крутить 3 цикла. Поэтому исключим возможность схитрить.
...
Рейтинг: 0 / 0
12.07.2020, 11:04
    #39978575
dakeiras
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Alexandrietz
mayton,

Однако я знаю, что это решение просто отвратительно, так как оно O(N^3).

меня тут спросили на интервью про алгоритмическую сложность и О малое.
Я сказал что ту лекцию прогулял в универе.

Надо будет дать им контакты автора, вон он знает что такое О малое О большое.
...
Рейтинг: 0 / 0
12.07.2020, 11:06
    #39978577
dakeiras
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
это кстати мега бесполезные задачи на перестановки, сортировки и прочее.

В реальной жизни не используются.
...
Рейтинг: 0 / 0
12.07.2020, 11:46
    #39978586
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
dakeiras,

Ну, знать лучше надо, но вот эти задачи олимпиадные
...
Рейтинг: 0 / 0
12.07.2020, 11:49
    #39978588
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
dakeiras,

Все эти о-малое, О-большое - символы Ландау и используются в матане.
...
Рейтинг: 0 / 0
12.07.2020, 12:14
    #39978597
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
dakeiras
...на перестановки....
В реальной жизни не используются.

как минимум pokerstars с Вами не согласен )))
...
Рейтинг: 0 / 0
12.07.2020, 13:57
    #39978615
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
mayton,

Раз тут говорят что эти задачи бесполезны, то изучать это я не буду. Пойду сервлеты изучать.
...
Рейтинг: 0 / 0
12.07.2020, 14:03
    #39978617
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Alexandrietz
mayton,

Раз тут говорят что эти задачи бесполезны, то изучать это я не буду. Пойду сервлеты изучать.

Что ты кидаешься из одной крайности в другую?

Это плохая черта. Доведи дело до конца, чьорт тебя подбери!
...
Рейтинг: 0 / 0
12.07.2020, 14:26
    #39978624
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
mayton,

Да я как бы ни думал, будет O(N^3).
...
Рейтинг: 0 / 0
12.07.2020, 14:47
    #39978633
dakeiras
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Leonid Kudryavtsev
dakeiras
...на перестановки....
В реальной жизни не используются.

как минимум pokerstars с Вами не согласен )))


Не согласны те в pokerstars (и во многих других фирмах, 90% их), кто пишет требования к соискателям и проводит интервью.
Т.е. те кто выучил это неиспользуемое и отфильтровывает "не таких как они".

А вот если бы бизнес (точнее те за чей счёт карнавал) знал всю эту поднаготную - он бы сильно удивился и расстроился бы.

Alexandrietz
dakeiras,

Все эти о-малое, О-большое - символы Ландау и используются в матане.

Я его в универе прогулял. На самом деле не прогулял, благополучно сдал выучив на 4 (у оч. строгово препода из стекляшки).
И на след. день полностью забыл.

Всё необходимо использовать по мере надобности.
Не нужно использовать то без чего можно обойтись.
...
Рейтинг: 0 / 0
12.07.2020, 14:50
    #39978638
dakeiras
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Alexandrietz
mayton,

Раз тут говорят что эти задачи бесполезны, то изучать это я не буду. Пойду сервлеты изучать.


Тяжёлый вопрос на самом деле.

Откуда идти - снизу вверх или сверху вниз.
Я фанат сверху вниз.

Т.е. всегда от общего иду к частному. Сначала изучаю бизнес, архитектуру, Веб.
До алгоритмов так и не дошёл за 15 лет пока, не потребовалось.


Но на интервью требуют их. Мне норм я такие фирмы шлю.
Но тебе может зайдёт.
...
Рейтинг: 0 / 0
12.07.2020, 14:53
    #39978640
dakeiras
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
насчёт Покера - там кстати может быть математическая специфика.
Как и в трейдинге.
...
Рейтинг: 0 / 0
12.07.2020, 15:03
    #39978645
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Alexandrietz
mayton,
Да я как бы ни думал, будет O(N^3).

Если ты не можешь решить задачу сейчас в том виде комплексности как ее предлагает leetcode - отложи ее.

Не всё сразу возможно заглотить. И не все программисты объективно могут пройти экзамен в Google.
Просто кидание из алгоритмизации в сервлеты - это какая-то суета и паника.

Заработай минимум денег. Оплати платные курсы. Оплати ментора.
Я не верю что мужчина совершеннолетнего возраста не может заработать небольшую сумму.

Давай не ленись и не прокрастинируй.
...
Рейтинг: 0 / 0
12.07.2020, 15:47
    #39978663
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Ну вы тут бадягу конечно развели.
У бедолаги просто нету фильтрации на уникальность решения, поэтому у него на выходе два результата, а должен быть один.
автор
Wrong Answer
Runtime: 0 ms
Your input
[0,0,0,0]
Output
[[0,0,0],[0,0,0]]
Expected
[[0,0,0]]
...
Рейтинг: 0 / 0
12.07.2020, 16:43
    #39978671
Valentin Kolesnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Такое решение нашёл.

Код: 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.
public List<List<Integer>> threeSum(int[] nums) {
    Arrays.sort(nums);
 
    ArrayList<List<Integer>> result = new ArrayList<>();
 
    for (int i = 0; i < nums.length; i++) {
        int j = i + 1;
        int k = nums.length - 1;
 
        if (i > 0 && nums[i] == nums[i - 1]) {
            continue;
        }
 
        while (j < k) {
            if (k < nums.length - 1 && nums[k] == nums[k + 1]) {
                k--;
                continue;
            }
 
            if (nums[i] + nums[j] + nums[k] > 0) {
                k--;
            } else if (nums[i] + nums[j] + nums[k] < 0) {
                j++;
            } else {
                ArrayList<Integer> l = new ArrayList<>();
                l.add(nums[i]);
                l.add(nums[j]);
                l.add(nums[k]);
                result.add(l);
                j++;
                k--;
            }
        }
    }
 
    return result;
}



Хорошего вам дня!
...
Рейтинг: 0 / 0
12.07.2020, 16:50
    #39978672
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
На Розетте есть почти под все языки. Осталось только добавить фильтрацию по summ==0

https://rosettacode.org/wiki/Combinations
...
Рейтинг: 0 / 0
13.07.2020, 12:38
    #39978898
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
dakeiras

А вот если бы бизнес (точнее те за чей счёт карнавал) знал всю эту поднаготную - он бы сильно удивился и расстроился бы.

Вы предполагаете, что люди профессионально занимающиеся игровым бизнесом не знаю, что такое "перестановки" и теория вероятности ? )))

Подозреваю, что владельцы бизнеса по данным вопросам подавляющее большинство форумчан уделают. Если и не с теоретически точки зрения, то по крайне мере с практической.
...
Рейтинг: 0 / 0
13.07.2020, 17:31
    #39979115
dakeiras
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
Leonid Kudryavtsev
dakeiras

А вот если бы бизнес (точнее те за чей счёт карнавал) знал всю эту поднаготную - он бы сильно удивился и расстроился бы.

Вы предполагаете, что люди профессионально занимающиеся игровым бизнесом не знаю, что такое "перестановки" и теория вероятности ? )))

Подозреваю, что владельцы бизнеса по данным вопросам подавляющее большинство форумчан уделают. Если и не с теоретически точки зрения, то по крайне мере с практической.

блаженная наивность.
...
Рейтинг: 0 / 0
15.07.2020, 16:56
    #39980040
Alexandrietz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не понимаю, в чем ошибка.
mayton,

Что можете сказать о ШАДе Яндекса? Чему обучают? Стоит ли идти?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Не понимаю, в чем ошибка. / 25 сообщений из 68, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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