力扣城计划在两地设立「力扣嘉年华」的分会场,气象小组正在分析两地区的气温变化趋势,对于第 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
解释:如下表所示, 第 2~4 天两地气温变化趋势相同,且持续时间最长,因此返回 4-2=2
image.png
示例 2:
输入:
temperatureA = [5,10,16,-6,15,11,3]
temperatureB = [16,22,23,23,25,3,-16]输出:3
提示:
- 2 <= temperatureA.length == temperatureB.length <= 1000
- -20 <= temperatureA[i], temperatureB[i] <= 40
// leetcode submit region begin(Prohibit modification and deletion)
func temperatureTrend(temperatureA []int, temperatureB []int) int {
maxLen := len(temperatureA)
i := 1
//返回值
res := 0
//当前值
now := 0
for i < maxLen {
a := temperatureA[i-1] - temperatureA[i]
b := temperatureB[i-1] - temperatureB[i]
//如果两个值趋势相等当前值就+1
if (a == 0 && b == 0) || a*b > 0 {
now++
} else {
//不相等则当前值归零
now = 0
}
//如果返回值小于当前值则替换
if res <= now {
res = now
}
i++
}
return res
}
//leetcode submit region end(Prohibit modification and deletion)