Серия «LeetCode»

1

LeetCode 125. Valid Palindrome

Серия LeetCode

Очередная задачка уровня Easy, но с довольно низким показателем Acceptance (44.4%). Что выражается в достаточно обширном наборе граничных случаев, некоторые из которых делают больно 🙂

Было желание сделать за один проход по исходной строке (без выделения дополнительно памяти). Вроде даже получилось, если ориентироваться на статистику запуска с LeetCode.

Надоело бороться с "Цитатой" в бесплодных попытках использовать её для оформления кода, которое можно был бы читать без самовоспламенения пердячей тяги. Поэтому тут будет пикча, в нормальном виде - в оригинале.

LeetCode 125. Valid Palindrome

Success: Runtime:2 ms, faster than 99.92% of Java online submissions. Memory Usage:42.3 MB, less than 87.41% of Java online submissions.

Показать полностью 1
1

LeetCode 1935. Maximum Number of Words You Can Type

Серия LeetCode

Тоже забавная задачка – со “сломанной клавиатурой”. Решил в ней Arrays.binarySearch использовать для поиска буквы слова в наборе “сломанных клавишей”, да и чтобы не забыть о его (метода) существовании в целом.

Судя по статистике – нормально получилось, в общем-то.

class Solution {

public int canBeTypedWords(String text, String brokenLetters) {

var brL = brokenLetters.toCharArray();

Arrays.sort(brL);

var words = text.split(" ");

int canTypeCnt = 0;

for (var word : words) {

boolean canType = true;

for (int i = 0; i < word.length(); i++) {

if (Arrays.binarySearch(brL, word.charAt(i)) >= 0) {

canType = false;

break;

}

}

if (canType) {

canTypeCnt++;

}

}

return canTypeCnt;

}

}

Success:

Runtime:2 ms, faster than 91.93% of Java online submissions.

Memory Usage:42.7 MB, less than 23.23% of Java online submissions.

Оригинал.

Показать полностью
2

LeetCode 13. Roman to Integer

Серия LeetCode

Приятная задачка выпала в поиске – хоть и easy, а сделать интересно. Какая-то “практическая применимость” в ней видится.

Вроде, там где-то и обратная проблема была – перевод записи арабскими цифрами в запись римскими.

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

LeetCode 13. Roman to Integer

Можно ещё вариант со switch-case сделать, но там с валидацией порядка цифр в записи будут вопросы. Реализация со словарём префиксов их снимает автоматом.

Оригинал.

Показать полностью

Leetcode 1920. Build Array from Permutation

Серия LeetCode

После долгих праздничных выходных — приходится «разогревать» голову задачками с высоким Acceptance. И даже они — не сразу заходят. Со скрипом.


class Solution { public static int[] buildArray(int[] nums) { int[] ans = new int[nums.length]; for (int i = 0; i < nums.length; i++) { ans[i] = nums[nums[i]]; } return ans; } }


https://leetcode.com/problems/build-array-from-permutation/d...

Leetcode 1360. Number of Days Between Two Dates

Серия LeetCode

Да, с серединки Acceptance начинается интересное уже. Процентов от 65 даже, и в сторону убывания.
Сомневаюсь, конечно, что в секции алгоритмических задач предполагался подобный подход… На это намекает и весьма нескромное время выполнения — 9ms.
Но оно работает. Для начала — уже недурно.


import java.time.Duration;
import java.time.LocalDate;

class Solution {
public int daysBetweenDates(String date1, String date2) {
return date1.equals(date2)
? 0
: Math.abs((int) Duration.between(
LocalDate.parse(date1).atStartOfDay(),
LocalDate.parse(date2).atStartOfDay()
).toDays());
}
}

https://leetcode.com/problems/number-of-days-between-two-dat...

Leetcode 1929. Concatenation of Array

Серия LeetCode

В процессе потения над Advent of Code понял, что надо алгосы держать в тонусе — иначе задачи даются тяжко.
Рецепт давно известен — Литкод. Успел там челлендж на первый уровень алгосов пройти и решил, что неплохо бы посохранять это всё где-то. Почему бы не здесь?
Начнём с простого, даже — примитивного. Не особо понял, при чем тут объединение массивов, скорее — генерация какая-то.


class Solution {
public static int[] getConcatenation(int[] nums) {
int[] ans = new int[nums.length * 2];
for (int i = 0; i < nums.length; i++) {
ans[i] = ans[i + nums.length] = nums[i];
}
return ans;
}
}


https://leetcode.com/problems/concatenation-of-array/descrip...

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества