题解 | #寻找最合适的生育区域#
寻找最合适的生育区域
https://www.nowcoder.com/practice/c183c254a5c94b9da341fb27fb3caf99?tpId=354&tqId=10588482&ru=/exam/oj&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj
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
高频面试算法题解 文章被收录于专栏
高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!


查看14道真题和解析