题解 | #寻找最合适的生育区域#

寻找最合适的生育区域

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

高频面试算法题解 文章被收录于专栏

高频面试算法题解,每天一小步,人生一大步,跟着一起刷起来!

全部评论

相关推荐

10-20 11:11
辽宁大学 营销
点赞 评论 收藏
分享
10-10 01:10
已编辑
深圳大学 测试开发
面了100年面试不知...:六月到九月,四个项目一个实习,是魔丸吗
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务