Java in NYC – нужен совет.

User avatar
Vladimir Kr.
Уже с Приветом
Posts: 572
Joined: 24 Mar 2004 07:31
Location: Krasnoyrsk -> -> Chicago

Re: Java in NYC – нужен совет.

Post by Vladimir Kr. »

3 ms Contains Duplicate на 42.5 MB данных это супер!
моя родина СССР!
User avatar
Vоvan
Уже с Приветом
Posts: 4532
Joined: 20 Mar 2004 03:19
Location: KTRK

Re: Java in NYC – нужен совет.

Post by Vоvan »

valchkou wrote: 02 Mar 2021 00:13
valchkou wrote: 02 Mar 2021 00:01
roadman wrote: 01 Mar 2021 23:58 https://docs.oracle.com/javase/7/docs/a ... tml#add(E)
Обычно для контейнеров set, map, hash* - метод add работает подобно contains в случае дубликатов.

Code: Select all

        Set<Integer> set = new HashSet(nums.length);
        for (int num : nums) {
            if (!set.add(num)) return false;
        }
        return set.size() != 0;
:good:
но есть 2 замечания
1) if (!set.add(num)) return true;
2) последнее сравнение лишние, просто return false;
этот вариант еще круче:
Runtime: 3 ms, faster than 99.69% of Java online submissions for Contains Duplicate.
Memory Usage: 42.5 MB, less than 82.79% of Java online submissions for Contains Duplicate.
Wrong Answer
Details
Input
[0]
Output
true
Expected
false

--
V.
User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Java in NYC – нужен совет.

Post by valchkou »

Vоvan wrote: 02 Mar 2021 17:33
valchkou wrote: 02 Mar 2021 00:13
valchkou wrote: 02 Mar 2021 00:01
roadman wrote: 01 Mar 2021 23:58 https://docs.oracle.com/javase/7/docs/a ... tml#add(E)
Обычно для контейнеров set, map, hash* - метод add работает подобно contains в случае дубликатов.

Code: Select all

        Set<Integer> set = new HashSet(nums.length);
        for (int num : nums) {
            if (!set.add(num)) return false;
        }
        return set.size() != 0;
:good:
но есть 2 замечания
1) if (!set.add(num)) return true;
2) последнее сравнение лишние, просто return false;
этот вариант еще круче:
Runtime: 3 ms, faster than 99.69% of Java online submissions for Contains Duplicate.
Memory Usage: 42.5 MB, less than 82.79% of Java online submissions for Contains Duplicate.
Wrong Answer
Details
Input
[0]
Output
true
Expected
false

--
V.
ну дык вы скопипаздили код с багами без учета ревью. Вот корректный

Code: Select all

        Set<Integer> set = new HashSet(nums.length);
        for (int num : nums) {
            if (!set.add(num)) return true;
        }
        return false;
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: Java in NYC – нужен совет.

Post by Сабина »

valchkou wrote: 01 Mar 2021 19:15 я тут на литкод зашел и решил свою первую задачку, аж прям радость распирает
Ну вот, с почином :)
Я с удивлением заметила что на «литкодах» народ не очень Скалу жалует. Ковырялась в Coderbyte и мое решение на Скале было первым для в общем то популярной задачки . Note to myself - писать где можно лучше на Скале вместо Джавы (точно) и Питона (May be)
Last edited by Сабина on 02 Mar 2021 22:38, edited 1 time in total.
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: Java in NYC – нужен совет.

Post by Сабина »

Vоvan wrote: 01 Mar 2021 21:30
Krys-Krys wrote: 01 Mar 2021 21:14
Vоvan wrote: 01 Mar 2021 21:10 for(;;ol--)
c.add(I.valueOf(nums[ol]));
Что это у вас такое этакое внутри for(). Это ж тихий ужас! :umnik1: Зачем так писать?
Вам потом скажут после интервью "Решить было мало. Код нужно было писать красивее"
hee hee, I was playing to see how leetcode changes memory allocation.

It is defintely not the worst I need to deal with :)

--
V.
Мне тоже понравилось :), типа кто поймёт тот заценит
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Работа и Карьера в IT”