J
Java | LeetCode
@easy_java_task6.8K подп.
453просмотров
6.7%от подписчиков
23 марта 2026 г.
statsScore: 498
Задача: 274. H-Index Сложность: medium Дан массив целых чисел citations, где citations[i] — количество цитирований, которое исследователь получил за свою i-ю статью. Верните h-индекс исследователя. Согласно определению h-индекса на Википедии: h-индекс определяется как максимальное значение h, такое что данный исследователь опубликовал по крайней мере h статей, каждая из которых была процитирована как минимум h раз. Пример: Input: citations = [3,0,6,1,5] Output: 3 Explanation: [3,0,6,1,5] means the researcher has 5 papers in total and each of them had received 3, 0, 6, 1, 5 citations respectively. Since the researcher has 3 papers with at least 3 citations each and the remaining two with no more than 3 citations each, their h-index is 3. 👨‍💻 Алгоритм: 1⃣Отсортировать массив цитирований по убыванию: Отсортировать массив citations в порядке убывания, чтобы наибольшее количество цитирований было в начале массива. 2⃣Найти наибольшее значение i, для которого citations[i] > i: Пройтись по отсортированному массиву и найти наибольшее значение i, для которого выполняется условие citations[i] > i. Это значение будет индексом, при котором количество цитирований статьи больше индекса. 3⃣Рассчитать h-индекс: h-индекс будет равен i + 1, где i - наибольшее значение, найденное на предыдущем шаге. 😎 Решение: public class Solution { public int hIndex(int[] citations) { int n = citations.length; int[] papers = new int[n + 1]; for (int c : citations) papers[Math.min(n, c)]++; int k = n; for (int s = papers[n]; k > s; s += papers[k]) k--; return k; } } Ставь 👍 и забирай 📚 Базу знаний
453
просмотров
1676
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_java_task

Все посты канала →
Задача: 274. H-Index Сложность: medium Дан массив целых чисе — @easy_java_task | PostSniper