【每日一题Day331】LC2560打家劫舍 IV | 二分查找 + 贪心

简介: 【每日一题Day331】LC2560打家劫舍 IV | 二分查找 + 贪心

打家劫舍 IV【LC2560】

沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。

由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋

小偷的 窃取能力 定义为他在窃取过程中能从单间房屋中窃取的 最大金额

给你一个整数数组 nums 表示每间房屋存放的现金金额。形式上,从左起第 i 间房屋中放有 nums[i] 美元。

另给你一个整数 k ,表示窃贼将会窃取的 最少 房屋数。小总能窃取至少 k 间房屋。

返回小偷的 最小 窃取能力。

思路:最小化最大值->二分查找

  • 明确题意:求取至少偷k不相邻的房屋时,小偷的 最小 窃取能力,即最小化偷取房屋金额的最大值。

image.png

class Solution {
    public int minCapability(int[] nums, int k) {
        int n = nums.length;
        int l = Integer.MIN_VALUE, r = 0;
        for (int num : nums){
            r = Math.max(r, num);
            l = Math.min(l, num);            
        }
        while (l <= r){
            int mid = (l + r) / 2;
            if (check(nums, mid, k)){
                r = mid - 1;
            }else{
                l = mid + 1;
            }
        }
        return l;
    }
    public boolean check(int[] nums, int target, int k){
        int n = nums.length;
        int j = -2;
        int count = 0;
        for (int i = 0; i < n; i++){
            if (j + 2 <= i && nums[i] <= target){
                count++;
                j = i;
                if (count >= k) return true;
            }     
        }
        return false;
    }
}

image.png

目录
相关文章
|
存储 Java
ArrayList自动扩容(详细篇)
ArrayList自动扩容(详细篇)
694 1
|
API Python Windows
对 Python 获取屏幕截图的 4 种方法详解
对 Python 获取屏幕截图的 4 种方法详解
|
人工智能 自然语言处理 前端开发
基于RAG和LLM的水利知识大语言模型系统开发有感
在数字化时代,水利行业的智能化管理尤为重要。本文介绍了基于大语言模型(LLM)和检索增强生成(RAG)技术的水利知识问答系统的开发过程。该系统结合了前沿AI技术和水利专业知识,通过构建全面的水利知识库,优化用户体验,确保系统的灵活性和可扩展性。项目展示了AI技术在垂直领域的巨大潜力,为水利行业的智能化发展贡献力量。
|
机器学习/深度学习 人工智能 搜索推荐
【颠覆传统】解锁记忆新姿势:多模态AI单词助记神器——让单词学习变得生动有趣,打造个性化学习新体验!
【8月更文挑战第21天】多模态AI单词助记模型融合文本、语音与图像,增强英语单词记忆效果。设计上利用多感官刺激提升信息处理与记忆效率。技术栈包括React.js前端、Node.js后端、PyTorch深度学习框架等。实现过程涵盖数据准备、前端开发、后端服务搭建、深度学习模型构建及用户反馈循环。应用显示该模型显著提高学习兴趣与记忆效率,尤其对视觉和听觉学习者有益,个性化推荐系统进一步优化学习体验。
537 0
|
存储 弹性计算 运维
数据灾备中心:创新性企业灾备管理服务
阿里云数据灾备中心旨在提供创新的灾备解决方案,确保企业业务连续性和数据安全。面对数据风险,如误删、勒索软件等,即使在公共云上,企业仍需灾备措施。数据灾备中心提供统一管理,通过3-2-1法则实现全面保护,特色包括统一覆盖多种资源、直观的星级评分和3D展示、简化运维流程。未来将推出更多功能,如资源分组评分、一体化策略中心、定制报表和消息中心,以支持不同行业的高要求,如金融、医疗等。
24996 8
数据灾备中心:创新性企业灾备管理服务
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录是一个重要而复杂的问题。
微信小程序作为业务拓展的新渠道,其全栈开发涉及前端与后端的紧密配合。本文聚焦小程序开发中的异常处理与日志记录,从前端的网络、页面跳转等异常,到后端的数据库、API调用等问题,详述了如何利用try-catch及日志框架进行有效管理。同时强调了集中式日志管理的重要性,并提醒开发者注意安全性、性能及团队协作等方面,以构建稳定可靠的小程序应用。
261 1
|
数据采集 自然语言处理 调度
一文详谈RAG优化方案与实践
RAG通过检索现有的大量知识,结合强大的生成模型,为复杂的问答、文本摘要和生成任务带来了全新的解决方案。本文详细的介绍了RAG遇到的挑战、通用范式、工程实践、优化实现策略等。
|
机器学习/深度学习 编解码 自然语言处理
SAM增强技术 | SAMAug提出Point Prompt增强,让SAM模型天天向上
SAM增强技术 | SAMAug提出Point Prompt增强,让SAM模型天天向上
441 1
|
知识图谱 ice
一篇文章讲明白LaTeX表格tabular背景色添加技巧【转】
一篇文章讲明白LaTeX表格tabular背景色添加技巧【转】
1275 0
|
存储 网络协议 网络架构