From c4f81ae656c5b9910fad782717dced6ab9f72360 Mon Sep 17 00:00:00 2001 From: GreyZeng <410486047@qq.com> Date: Thu, 25 Jan 2024 22:34:01 +0800 Subject: [PATCH] update heap sort --- .../java/git/snippet/heap/Code_DistanceLessK.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/git/snippet/heap/Code_DistanceLessK.java b/src/main/java/git/snippet/heap/Code_DistanceLessK.java index c4f943ff..81fe98af 100644 --- a/src/main/java/git/snippet/heap/Code_DistanceLessK.java +++ b/src/main/java/git/snippet/heap/Code_DistanceLessK.java @@ -16,10 +16,13 @@ public class Code_DistanceLessK { heap.offer(arr[i]); } int index = 0; - for (; i < arr.length || !heap.isEmpty(); i++) { - if (i < arr.length) { - heap.offer(arr[i]); - } + // O(N*logK) + for (; i < arr.length; i++) { + heap.offer(arr[i]); + // 移动一定不会超过K次 + arr[index++] = heap.poll(); + } + while (!heap.isEmpty()) { arr[index++] = heap.poll(); } } -- GitLab