LCP 61. 气温变化趋势 #
题目 #
-
力扣城计划在两地设立「力扣嘉年华」的分会场,气象小组正在分析两地区的气温变化趋势,对于第
i ~ (i+1)
天的气温变化趋势,将根据以下规则判断:- 若第
i+1
天的气温 高于 第i
天,为 上升 趋势 - 若第
i+1
天的气温 等于 第i
天,为 平稳 趋势 - 若第
i+1
天的气温 低于 第i
天,为 下降 趋势
- 若第
-
已知
temperatureA[i]
和temperatureB[i]
分别表示第i
天两地区的气温。 组委会希望找到一段天数尽可能多,且两地气温变化趋势相同的时间举办嘉年华活动。请分析并返回两地气温变化趋势相同的最大连续天数。即最大的
n
,使得第i~i+n
天之间,两地气温变化趋势相同
思路 #
模拟 #
代码 #
模拟 #
class Solution {
public int trend(int diff) {
if (diff > 0) return 1;
if (diff == 0) return 0;
return -1;
}
public int temperatureTrend(int[] temperatureA, int[] temperatureB) {
int ans = 0, cur = 0;
int[] trendA = new int[temperatureA.length-1], trendB = new int[temperatureB.length-1];
for (int i = 0; i < trendA.length; i++) {
trendA[i] = trend(temperatureA[i+1]-temperatureA[i]);
trendB[i] = trend(temperatureB[i+1]-temperatureB[i]);
if (trendA[i] == trendB[i]) cur++;
else {
ans = Math.max(ans, cur);
cur = 0;
}
}
return Math.max(ans, cur);
}
}