kk
This commit is contained in:
36
src/main/java/com/dota/stack/_853/Solution.java
Normal file
36
src/main/java/com/dota/stack/_853/Solution.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package com.dota.stack._853;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
class Car {
|
||||
int position;
|
||||
int speed;
|
||||
double res;
|
||||
|
||||
public Car(int position, int speed, double res) {
|
||||
this.position = position;
|
||||
this.speed = speed;
|
||||
this.res = res;
|
||||
}
|
||||
}
|
||||
|
||||
class Solution {
|
||||
public int carFleet(int target, int[] position, int[] speed) {
|
||||
var list = new ArrayList<Car>();
|
||||
for (int i = 0; i < position.length; i++) {
|
||||
list.add(new Car(position[i], speed[i], (double) (target - position[i]) / speed[i]));
|
||||
}
|
||||
|
||||
var res = 1;
|
||||
list.sort((a, b) -> b.position - a.position);
|
||||
|
||||
for (int i = 1; i < list.size(); i++) {
|
||||
if (list.get(i - 1).res < list.get(i).res) {
|
||||
res++;
|
||||
} else {
|
||||
list.get(i).res = list.get(i - 1).res;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
24
src/main/java/com/dota/stack/_901/StockSpanner.java
Normal file
24
src/main/java/com/dota/stack/_901/StockSpanner.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package com.dota.stack._901;
|
||||
|
||||
import java.util.Deque;
|
||||
import java.util.LinkedList;
|
||||
|
||||
record Node(int k, int v) {
|
||||
}
|
||||
|
||||
class StockSpanner {
|
||||
Deque<Node> stack ;
|
||||
|
||||
public StockSpanner() {
|
||||
stack = new LinkedList<>();
|
||||
}
|
||||
|
||||
public int next(int price) {
|
||||
int sum = 1;
|
||||
while(!stack.isEmpty() && stack.peekLast().k() <= price) {
|
||||
sum += stack.removeLast().v();
|
||||
}
|
||||
stack.addLast(new Node(price, sum));
|
||||
return sum;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user