Top 150 InterviewЛегко

K Ближайшие точки к началу координат ---ПИСЕП--- Подробное руководство и реализация __PYTERM_0__ для задачи «K ближайших точек к началу координат». ---ПИСЕП--- Учитывая массив точек, где Points[i] = [xi, yi] представляет точку на плоскости XY и целое число k, верните k ближайших точек к началу координат (0, 0). Расстояние между двумя точками на плоскости XY — это евклидово расстояние (т. е. sqrt((x1 - x2)^2 + (y1 - y2)^2)). Вы можете вернуть ответ в любом порядке. Ответ гарантированно будет уникальным (за исключением порядка, в котором он находится). Напишите функцию __PYCODE_0__. ---ПИСЕП--- 150 лучших интервью ---ПИСЕП--- Куча/очередь приоритетов ---ПИСЕП--- Проблема «K ближайших точек к началу координат» является ключевой задачей в разделе «Куча/очередь приоритетов». ---ПИСЕП--- Эта реализация фокусируется на логике простого уровня в __PYTERM_0__. ---ПИСЕП--- В предоставляемых нами решениях мы уделяем приоритетное внимание технической точности и читаемости кода. ---ПИСЕП--- Алгоритмическая инженерия ---ПИСЕП--- Соревновательное программирование ---ПИСЕП--- Технические оценки ---ПИСЕП--- Визуализация логического потока для K ближайших точек к началу координат. ---ПИСЕП--- Внимательно прочитайте постановку задачи для K ближайших точек к началу координат. ---ПИСЕП--- Нарисуйте простое итеративное решение. ---ПИСЕП--- Ищите лишние вычисления. ---ПИСЕП--- Используйте хеширование или сортировку, чтобы ускорить процесс. ---ПИСЕП--- Очистите код для производственных стандартов. ---ПИСЕП--- Пустые входные структуры ---ПИСЕП--- Одноэлементные входы ---ПИСЕП--- Большие числовые границы ---ПИСЕП--- Объясните логику вашего подхода к куче/приоритетной очереди. ---ПИСЕП--- Обсудите крайние случаи, такие как нулевые или пустые входные данные. ---ПИСЕП--- Применяются стандартные свойства проблемы кучи/очереди приоритетов. ---ПИСЕП--- Рассмотрите возможность использования структур данных, специфичных для кучи/очереди приоритетов, таких как наборы или кучи. ---ПИСЕП--- K-й самый большой элемент массива ---ПИСЕП--- Подробное руководство и реализация __PYTERM_0__ для проблемы «K-й самый большой элемент в массиве». ---ПИСЕП--- Учитывая целочисленный массив nums и целое число k, верните k-й по величине элемент массива. Обратите внимание, что это k-й по величине элемент в отсортированном порядке, а не k-й отдельный элемент. Сможете ли вы решить ее со сложностью O(n)? Напишите функцию __PYCODE_0__. ---ПИСЕП--- 150 лучших интервью ---ПИСЕП--- Куча/очередь приоритетов ---ПИСЕП--- Проблема «K-й наибольший элемент в массиве» — ключевая задача в разделе «Куча/очередь с приоритетами». ---ПИСЕП--- Эта реализация фокусируется на логике простого уровня в __PYTERM_0__. ---ПИСЕП--- В предоставляемых нами решениях мы уделяем приоритетное внимание технической точности и читаемости кода. ---ПИСЕП--- Алгоритмическая инженерия ---ПИСЕП--- Соревновательное программирование ---ПИСЕП--- Технические оценки ---ПИСЕП--- Визуализация логического потока для K-го крупнейшего элемента массива. ---ПИСЕП--- Внимательно прочитайте постановку задачи для K-го крупнейшего элемента массива. ---ПИСЕП--- Нарисуйте простое итеративное решение. ---ПИСЕП--- Ищите лишние вычисления. ---ПИСЕП--- Используйте хеширование или сортировку, чтобы ускорить процесс.

Detailed guide and Python implementation for the 'K Closest Points to Origin' problem.

Постановка задачи

Легко

Given an array of points where points[i] = [xi, yi] represents a point on the X-Y plane and an integer k, return the k closest points to the origin (0, 0).

The distance between two points on the X-Y plane is the Euclidean distance (i.e., sqrt((x1 - x2)^2 + (y1 - y2)^2)).

You may return the answer in any order. The answer is guaranteed to be unique (except for the order that it is in).

Write a function kClosest(points: List[List[int]], k: int) -> List[List[int]].

Ограничения
  • 1 <= k <= len(points) <= 10^4
  • -10^4 <= xi, yi <= 10^4

Примеры

Example 1
Input
points = [[1,3],[-2,2]], k = 1
Output
[[-2,2]]
Explanation

The distance from (1, 3) to the origin is sqrt(10). The distance from (-2, 2) to the origin is sqrt(8). Since sqrt(8) < sqrt(10), (-2, 2) is closer to the origin.

Example 2
Input
points = [[3,3],[5,-1],[-2,4]], k = 2
Output
[[3,3],[-2,4]]
Explanation

The closest two points are (3, 3) and (-2, 4). (Order of elements in the output does not matter).

Need a Hint?
Consider using Heap / Priority Queue-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

Готовы решить?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Открыть в редакторе
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.

Учебник по Python

Генераторы Python

Узнайте, как использовать генераторы Python и операторы доходности для обработки огромных наборов данных с минимальным потреблением памяти. Главные выражения-генераторы.

Посмотреть ресурс
Практическое руководство

Как преобразовать строку в Int в Python

Узнайте, как преобразовать строку в целое число в Python с помощью функции int(). Безопасно обрабатывайте ошибки и преобразуйте числа из двоичного, восьмеричного или шестнадцатеричного формата.

Посмотреть ресурс
Шпаргалка

Памятка по операторам Python

Освойте арифметические операции, операции сравнения, логические, побитовые операторы, операторы присваивания и идентификации в Python.

Посмотреть ресурс
Сравнение языков

Декораторы Python и шаблоны проектирования декораторов: ключевые различия

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

Посмотреть ресурс