From 894e1aef6ed342764721264206c0b764cab415b8 Mon Sep 17 00:00:00 2001 From: yennanliu Date: Fri, 8 Nov 2024 07:45:50 +0800 Subject: [PATCH] update --- .../src/main/java/dev/workspace5.java | 55 ++++++++++++++++--- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/leetcode_java/src/main/java/dev/workspace5.java b/leetcode_java/src/main/java/dev/workspace5.java index 6670f7ad..b3e34bae 100644 --- a/leetcode_java/src/main/java/dev/workspace5.java +++ b/leetcode_java/src/main/java/dev/workspace5.java @@ -2094,10 +2094,24 @@ public int[] beautifulArray(int n) { * * */ + /** + * if no one in room -> seat at idx 0 + * if someone in the room -> seat max distance from it + * + * a heap to track "all distance", so can pop max val from heap + * + * + * + * + */ class ExamRoom { + // attr + int[] seats; + PriorityQueue pq; public ExamRoom(int n) { - + this.seats = new int[n]; + this.pq = new PriorityQueue(); } public int seat() { @@ -2105,7 +2119,7 @@ public int seat() { } public void leave(int p) { - + this.seats[p] = 0; } } @@ -2339,22 +2353,34 @@ public int minKnightMoves(int x, int y) { * s s f * */ - // 2 pointers public int removeDuplicates(int[] nums) { - // int s = 0; for (int f = 1; f < nums.length; f++){ - if (nums[f] != nums[s]){ - // + if (nums[s] != nums[f]){ s += 1; int tmp = nums[f]; nums[f] = nums[s]; nums[s] = tmp; } } - // return s+1; } + // 2 pointers +// public int removeDuplicates(int[] nums) { +// // +// int s = 0; +// for (int f = 1; f < nums.length; f++){ +// if (nums[f] != nums[s]){ +// // +// s += 1; +// int tmp = nums[f]; +// nums[f] = nums[s]; +// nums[s] = tmp; +// } +// } +// // +// return s+1; +// } /** * - exp 1 * @@ -2531,6 +2557,7 @@ public int removeElement(int[] nums, int val) { int s = 0; for (int f = 0; f < nums.length; f++){ if (nums[f] != val){ + //int tmp = nums[f]; nums[s] = nums[f]; s += 1; } @@ -2538,6 +2565,20 @@ public int removeElement(int[] nums, int val) { return s; } + + + +// public int removeElement(int[] nums, int val) { +// int s = 0; +// for (int f = 0; f < nums.length; f++){ +// if (nums[f] != val){ +// nums[s] = nums[f]; +// s += 1; +// } +// } +// return s; +// } + // public int removeElement(int[] nums, int val) { // // int s = 0;