题目描述:
力扣城计划在两地设立「力扣嘉年华」的分会场,气象小组正在分析两地区的气温变化趋势,对于第 i ~ (i+1)
天的气温变化趋势,将根据以下规则判断:
- 若第
i+1
天的气温 高于 第i
天,为 上升 趋势 - 若第
i+1
天的气温 等于 第i
天,为 平稳 趋势 - 若第
i+1
天的气温 低于 第i
天,为 下降 趋势
已知 temperatureA[i]
和 temperatureB[i]
分别表示第 i
天两地区的气温。
组委会希望找到一段天数尽可能多,且两地气温变化趋势相同的时间举办嘉年华活动。请分析并返回两地气温变化趋势相同的最大连续天数。
即最大的
n
,使得第i~i+n
天之间,两地气温变化趋势相同
示例 1:
输入:
temperatureA = [21,18,18,18,31]
temperatureB = [34,32,16,16,17]
输出:
2
题解:
class Solution {
public int temperatureTrend(int[] temperatureA, int[] temperatureB) {
int len = temperatureA.length;
int answer = 0, count = 0;
for (int i = 0; i < len - 1; i++) {
int a = diff(temperatureA, i);
int b = diff(temperatureB, i);
if (a == b) {
count = count + 1;
answer = answer >= count ? answer : count;
} else {
count = 0;
}
}
return answer;
}
public int diff(int[] arr, int i) {
if (arr[i + 1] > arr[i]) {
return 1;
} else if (arr[i + 1] < arr[i]) {
return -1;
}
return 0;
}
}