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.返回最终结果和最后一个临时计数的最大值