61. 气温变化趋势

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);
    }
}