Panson-Weekly-017
日拱一卒
1 一周见闻
1.1 技术文章
1.2 泛互联网文章
2 技术总结
3 Algorithm(算法题)
class Solution {
public int busyStudent(int[] startTime, int[] endTime, int queryTime) {
int[] dif = new int[1001];
int n = startTime.length;
for(int i = 0; i < n; i++) {
dif[startTime[i]]++;
dif[endTime[i] + 1]--;
}
int sum = 0;
for(int i = 0; i < queryTime; i++) {
sum += dif[i];
}
return sum;
}
}
class Solution {
public boolean carPooling(int[][] trips, int capacity) {
int[] timestamp = new int[1001]; // 1001是因为题目给定了时间范围为 [0, 1000]
// 记录每个时间点上的乘客数量变化
for (int[] trip : trips) {
timestamp[trip[1]] += trip[0]; // 上车点增加乘客数量
timestamp[trip[2]] -= trip[0]; // 下车点减少乘客数量
}
// 遍历每个时间点,检查容量是否足够
int currentCapacity = 0;
for (int number : timestamp) {
currentCapacity += number;
if (currentCapacity > capacity) {
return false;
}
}
return true;
}
}