import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param heights int整型一维数组 
     * @param k int整型 
     * @return int整型
     */
   public int findMaxRangeWithinThreshold (int[] heights, int k) {
        int result =1;
        int count=1;
        for(int i=0,j=1;j<heights.length;j++){
		  // 检查当前高度之间的绝对差是否小于阈值
            if(Math.abs(heights[i]-heights[j])<k){
                count++; // 增加临时计数
            }else{
			  // 如果差值大于或等于阈值,
			// 使用当前结果和临时计数的最大值更新结果,
			// 然后将临时计数重置为1
                result = Math.max(result,count);
                count=1;
            }
            i = j;
        }
        return Math.max(result,count);
    }
}

本题知识点分析:

1.双指针

2.API函数(Math.max)

3.数组遍历

本题解题思路分析:

1.初始化结果和临时计数

2.遍历高度数组,检查当前高度之间的绝对差是否小于阈值,如果差值大于或等于阈值, 使用当前结果和临时计数的最大值更新结果,然后将临时计数重置为1

3.返回最终结果和最后一个临时计数的最大值

本题使用编程语言: Java