powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не понимаю, в чем ошибка.
25 сообщений из 68, страница 1 из 3
Не понимаю, в чем ошибка.
    #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
Не понимаю, в чем ошибка.
    #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
Не понимаю, в чем ошибка.
    #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
Не понимаю, в чем ошибка.
    #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
Не понимаю, в чем ошибка.
    #39978568
Alexandrietz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Alexandrietz
dakeiras,

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

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

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

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


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

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

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


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

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

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

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

Давай не ленись и не прокрастинируй.
...
Рейтинг: 0 / 0
Не понимаю, в чем ошибка.
    #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
Не понимаю, в чем ошибка.
    #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
Не понимаю, в чем ошибка.
    #39978672
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Розетте есть почти под все языки. Осталось только добавить фильтрацию по summ==0

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

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

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

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

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

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

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

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

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


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