本文最后更新于 2024-06-24,文章内容可能已经过时。

描述

https://leetcode.cn/problems/6CE719/description/

请分析并返回两地气温变化趋势相同的最大连续天数即最大的 n,使得第 i~i+n 天之间,两地气温变化趋势相同

思路

类似滑动窗口,当前天数位置指针不断增加,定义当前位置和滑动位置,取变化的趋势的最大值。

代码

func getTrend(x, y int) int {
	if x == y {
		return 0
	}
	if x < y {
		return -1
	}
	return 1
}

/*
LCP 61. 气温变化趋势
*/
func temperatureTrend(temperatureA []int, temperatureB []int) int {
	n := len(temperatureA)
	ans, cur := 0, 0
	for i := 1; i < n; i++ {
		ta := getTrend(temperatureA[i-1], temperatureA[i])
		tb := getTrend(temperatureB[i-1], temperatureB[i])
		if ta == tb {
			cur++
			ans = max(ans, cur)
		} else {
			cur = 0
		}
	}
	return ans
}