【每日算法Day 102】美团 AI 平台算法工程师面试编程题

简介: 【每日算法Day 102】美团 AI 平台算法工程师面试编程题

今天去尝试了一下美团 AI 平台,两次面试连一起。但是两位面试官小哥都是做推荐的,我们互相都不了解对方怎么做的。于是乎就做算法题,讲论文(把不懂的人讲懂确实困难),然后全程小哥给我介绍他们部门情况,我就挂机听着。不管这家拿不拿得到,就当刷刷经验吧,也挺不错的。一共三道题目,前两道一个最长上升子序列,一道快速排序,就不讲了,都是原题。

题目描述

题目链接:

牛客网:分石子[1]

牛牛有 n 堆石子堆,第 i 堆一共有 a[i] 个石子。

牛牛可以对任意一堆石子数量大于 1 的石子堆进行分裂操作,分裂成两堆新的石子数量都大于等于 1 的石子堆。

现在牛牛需要通过分裂得到 m 堆石子,他想知道这 m 堆石子的最小值最大可以是多少?

示例:

输入:
3,5,[3,5,6]
输出:
2
解释:
把5分裂成2和3
把6分裂成2和4
得到五堆石子[3,2,3,2,4]

备注:


  • 第一个参数 n 代表石子堆的个数
  • 第二个参数 m 表示需要得到的石子堆数。
  • 第三个参数 vector a 代表每堆石子堆的石子个数

题解

一拿到这个题目,就看出来这是一道二分答案的题目。

首先定义上下界 l = 1, r = min{a[i]} ,也就是说,每一堆个数最小值至少为 1 ,最多就是初始的时候最小的那堆个数。

然后对于 mid = (l + r) / 2 ,含义就是假设最终最小的那堆有 mid 个。我们求出初始时每一堆最多可以划分出多少个数全部大于等于 mid 的子堆,显然个数是 a[i] / mid 取整,记总堆数为 cnt

如果 cnt < m ,那么说明 mid 太大了,你最多也不可能划分成 m 堆,所以更新 r = mid - 1 。如果 cnt > m ,那么说明 mid 太小了,你能划分的堆数大于了 m ,那么更新 l = mid + 1 。最后如果 cnt = m ,你就暂存一下答案,因为这时的 mid 是有可能成为最终答案的。但是 mid 还是可能太小了,因为 mid 稍微大一点 cnt 是不会变的,所以继续更新 l = mid + 1

最终返回暂存的答案 res 即可。注意这题的二分框架和之前做过的有所不同,在等号判断上得特别小心,我一开始没想清楚,错了好多次才通过的。

代码

class Solution {
public:
    /**
     * 分石子
     * @param n int整型 
     * @param m long长整型 
     * @param a int整型vector 
     * @return int整型
     */
    int solve(int n, long long m, vector<int>& a) {
        typedef long long ll;
        ll l = 1, r = *min_element(a.begin(), a.end()), res = 0;
        while (l <= r) {
            ll mid = l + (r - l) / 2;
            ll cnt = 0;
            for (auto x : a) {
                cnt += x / mid;
            }
            if (cnt < m) r = mid - 1;
            else {
                l = mid + 1;
                res = mid;
            }
        }
        return res;
    }
};
相关文章
|
7月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
3780 166
|
7月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
7571 105
|
7月前
|
人工智能 供应链 搜索推荐
拔俗AI 智能就业咨询服务平台:求职者的导航,企业的招聘滤网
AI智能就业平台破解求职招聘困局:精准匹配求职者、企业与高校,打破信息壁垒。简历诊断、岗位推荐、技能提升一站式服务,让就业更高效。
360 0
|
7月前
|
人工智能 搜索推荐 大数据
拔俗AI一体化数字销售服务平台:让企业销售更智能、更高效
AI一体化数字销售服务平台融合AI与大数据,集成客户管理、智能推荐、自动化跟进等功能,实现销售全流程智能化。打破传统模式困局,提升转化率与效率,助力企业降本增效,抢占数字化转型先机。(238字)
399 0
|
7月前
|
存储 人工智能 搜索推荐
拔俗AI大模型教学平台:开启智能教育新时代
在AI与教育深度融合背景下,本文基于阿里云技术构建大模型教学平台,破解个性化不足、反馈滞后等难题。通过“大模型+知识图谱+场景应用”三层架构,实现智能答疑、精准学情分析与个性化学习路径推荐,助力教学质量与效率双提升,推动教育智能化升级。
879 0
|
7月前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
598 0
|
7月前
|
人工智能 运维 NoSQL
拔俗AI大模型知识管理平台:让技术团队的“隐性知识”不再沉睡
技术团队常困于知识“存得住却用不好”。AI大模型知识管理平台如同为团队知识装上“智能大脑”,打通文档、代码、日志等碎片信息,实现智能检索、自动归集、动态更新与安全共享。它让新人快速上手、老手高效排障,把散落的经验变成可复用的智慧。知识不再沉睡,经验永不流失。
234 0
|
7月前
|
人工智能 自然语言处理 搜索推荐
营销智能体 AI 平台:技术人告别营销需求返工的实战手册
技术人常陷营销琐事:改文案、调接口、算数据。营销智能体AI平台并非“营销玩具”,而是为技术减负的利器。它将内容生成、投放优化、数据复盘自动化,无缝对接现有系统,提升效率2倍以上。落地需避三坑:勿贪全、勿求完美、紧扣业务需求。让技术专注核心,告别重复搬运。
263 0
|
7月前
|
人工智能 供应链 算法
AI 产业服务平台:打造产业智能化的“加速器”与“连接器”
AI产业服务平台整合技术、数据、算力与人才,为中小企业提供低门槛、一站式AI赋能服务,覆盖研发、生产、营销、管理全链条,助力产业智能化转型。
297 0