From 69fcf0a261a5311fa32992a089f92a64579de369 Mon Sep 17 00:00:00 2001 From: sp995 <100511753+sp995@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:15:52 +0530 Subject: [PATCH 1/4] Create CarFleetII.java --- .../CarFleetII.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java diff --git a/Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java b/Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java new file mode 100644 index 00000000..5f55532b --- /dev/null +++ b/Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java @@ -0,0 +1,28 @@ +class Solution { + public double[] getCollisionTimes(int[][] cars) { + int length = cars.length; + double[] times = new double[length]; + Deque stack = new LinkedList(); + for (int i = length - 1; i >= 0; i--) { + while (!stack.isEmpty()) { + if (cars[stack.peek()][1] >= cars[i][1]) + stack.pop(); + else { + if (times[stack.peek()] < 0) + break; + double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); + if (time > cars[stack.peek()][0] - cars[i][0]) + break; + else + stack.pop(); + } + } + if (stack.isEmpty()) + times[i] = -1; + else + times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) / (cars[i][1] - cars[stack.peek()][1]); + stack.push(i); + } + return times; + } +} From 0b99dad90aedb5bb2ab3ef4c3e734ddb5e87aac9 Mon Sep 17 00:00:00 2001 From: sp995 <100511753+sp995@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:16:24 +0530 Subject: [PATCH 2/4] Delete Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) directory --- .../CarFleetII.java | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java diff --git a/Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java b/Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java deleted file mode 100644 index 5f55532b..00000000 --- a/Java/class Solution { public double[] getCollisionTimes(int[][] cars) { int length = cars.length; double[] times = new double[length]; Deque stack = new LinkedList(); for (int i = length - 1; i >= 0; i--) { while (!stack.isEmpty()) { if (cars[stack.peek()][1] >= cars[i][1]) stack.pop(); else { if (times[stack.peek()] < 0) break; double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); if (time > cars[stack.peek()][0] - cars[i][0]) break; else stack.pop(); } } if (stack.isEmpty()) times[i] = -1; else times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) /CarFleetII.java +++ /dev/null @@ -1,28 +0,0 @@ -class Solution { - public double[] getCollisionTimes(int[][] cars) { - int length = cars.length; - double[] times = new double[length]; - Deque stack = new LinkedList(); - for (int i = length - 1; i >= 0; i--) { - while (!stack.isEmpty()) { - if (cars[stack.peek()][1] >= cars[i][1]) - stack.pop(); - else { - if (times[stack.peek()] < 0) - break; - double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); - if (time > cars[stack.peek()][0] - cars[i][0]) - break; - else - stack.pop(); - } - } - if (stack.isEmpty()) - times[i] = -1; - else - times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) / (cars[i][1] - cars[stack.peek()][1]); - stack.push(i); - } - return times; - } -} From 8ed1778985174847cd852ee7b12607d3719c584b Mon Sep 17 00:00:00 2001 From: sp995 <100511753+sp995@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:18:14 +0530 Subject: [PATCH 3/4] Create CarFleetII.java --- java/CarFleetII.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 java/CarFleetII.java diff --git a/java/CarFleetII.java b/java/CarFleetII.java new file mode 100644 index 00000000..5f55532b --- /dev/null +++ b/java/CarFleetII.java @@ -0,0 +1,28 @@ +class Solution { + public double[] getCollisionTimes(int[][] cars) { + int length = cars.length; + double[] times = new double[length]; + Deque stack = new LinkedList(); + for (int i = length - 1; i >= 0; i--) { + while (!stack.isEmpty()) { + if (cars[stack.peek()][1] >= cars[i][1]) + stack.pop(); + else { + if (times[stack.peek()] < 0) + break; + double time = times[stack.peek()] * (cars[i][1] - cars[stack.peek()][1]); + if (time > cars[stack.peek()][0] - cars[i][0]) + break; + else + stack.pop(); + } + } + if (stack.isEmpty()) + times[i] = -1; + else + times[i] = (double) (cars[stack.peek()][0] - cars[i][0]) / (cars[i][1] - cars[stack.peek()][1]); + stack.push(i); + } + return times; + } +} From d97cde562f3bf87b8d65dfc9534bba2aba5ccf38 Mon Sep 17 00:00:00 2001 From: sp995 <100511753+sp995@users.noreply.github.com> Date: Fri, 10 Jan 2025 13:37:27 +0530 Subject: [PATCH 4/4] Rename CarFleetII.java to CarFleetII.java --- {java => Java}/CarFleetII.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {java => Java}/CarFleetII.java (100%) diff --git a/java/CarFleetII.java b/Java/CarFleetII.java similarity index 100% rename from java/CarFleetII.java rename to Java/CarFleetII.java