Untitled
unknown
plain_text
a year ago
1.0 kB
9
Indexable
import java.util.*;
class Solution {
private int getIndexOfMonth(String date) {
String[] parts = date.split("-");
int month = Integer.parseInt(parts[0]);
int year = Integer.parseInt(parts[1]);
return year * 12 + month;
}
public int solution(String[] A, String[] B, int[] C) {
int N = A.length;
int[] monthlyExpenses = new int[2400]; // 200 years * 12 months
for (int i = 0; i < N; i++) {
int startMonth = getIndexOfMonth(A[i]);
int endMonth = getIndexOfMonth(B[i]);
monthlyExpenses[startMonth] += C[i];
if (endMonth > startMonth) {
monthlyExpenses[endMonth + 1] -= C[i];
}
}
int maxExpense = 0;
int currentExpense = 0;
for (int i = 0; i < monthlyExpenses.length; i++) {
currentExpense += monthlyExpenses[i];
maxExpense = Math.max(maxExpense, currentExpense);
}
return maxExpense;
}
}Editor is loading...
Leave a Comment