【每日算法Day 101】字节跳动 AI Lab 精选面试编程题

简介: 字节跳动 AI Lab 精选面试编程题

0-1 背包问题(浮点数)


0-1 背包问题,一共 n < 20 个物品,每个物品价格 p[i] (浮点数),重量 w[i] (浮点数),背包容量 M (浮点数)。求最大能装的价值是多少?

输入:20 678.9123.56 51.5631.45 23.5662.54 45.6215.32 42.2312.32 65.3265.12 32.4515.65 45.7862.15 98.3232.15 45.6215.44 95.3245.65 99.4532.15 22.4823.56 51.5631.45 23.5662.54 45.6215.32 42.2312.32 65.3265.12 32.4515.65 45.7862.15 98.32输出:1050.07

题解


因为这里全部都是浮点数,所以没有办法直接用普通的动态规划来做,这里我提供几个思路。

方法1:

如果小数点只有两位的话,很简单,所有数字统一乘以 100 ,那么就都变成整数了。然后就可以直接用普通的 0-1 背包方法来做。


image.png

代码



#include <bits/stdc++.h>using namespace std;typedeflonglongll;constintmod=1e9+7;constintN=22;
structnode {    doublew, p;  
booloperator< (constnode&rhs) const {  
returnw<rhs.w;  
             }} a[1<<N], b[1<<N];
intmain() { 
intn;    doubleM;
scanf("%d%lf", &n, &M);  
printf("%f\n", M);  
vector<double>w(n, 0), p(n, 0);  
for (inti=0; i<n; ++i) {  
scanf("%lf%lf", &w[i], &p[i]); 
    }    printf("%f\n", tmp); 
intca=0, cb=0;   
for (ints=0; s< (1<<(n/2)); ++s) {  
doubletot_w=0, tot_p=0; 
for (inti=0; i<n/2; ++i) {   
if (s&(1<<i)) {     
tot_w+=w[i]; 
tot_p+=p[i];    
if (tot_w>M) break;  
            }     
        }       
if (tot_w<=M) {   
a[ca].w=tot_w;   
a[ca].p=tot_p; 
ca++;     
        }   
    }  
for (ints=0; s< (1<<(n-n/2)); ++s) { 
doubletot_w=0, tot_p=0; 
for (inti=0; i<n-n/2; ++i) {  
if (s&(1<<i)) {    
tot_w+=w[n/2+i];
tot_p+=p[n/2+i]; 
if (tot_w>M) break;
            }      
        }      
if (tot_w<=M) {    
b[cb].w=tot_w;   
b[cb].p=tot_p;    
cb++;      
        }   
    }    
sort(a, a+ca); 
sort(b, b+cb);   
vector<double>maxp(cb, 0); 
maxp[0] =b[0].p; 
for (inti=1; i<cb; ++i) { 
maxp[i] =max(maxp[i-1], b[i].p);
    }   
intj=cb-1;   
doubleres=0; 
for (inti=0; i<ca; ++i) { 
while (j>=0&&a[i].w+b[j].w>M) --j;
if (j<0) break; 
res=max(res, a[i].p+maxp[j]);  
    }  
printf("%f\n", res);  
return0;
}

最小长度子数组


给一个正数数组,找出最小长度连续子数组,其和大于等于 m

题解



image.png

代码



#include <bits/stdc++.h>using namespace std;intmain() { 
intn, m;   
scanf("%d%d", &n, &m);
vector<int>a(n, 0);  
for (inti=0; i<n; ++i) {   
scanf("%d", &a[i]);   
    }    intj=0, sum=0, res=INT_MAX;
for (inti=0; i<n; ++i) {   
sum+=a[i];     
while (sum>=m) {   
res=min(res, i-j+1); 
sum-=a[j++];     
        }   
    }   
printf("%d\n", res); 
return0;
}

image.png

作者简介:godweiyang知乎同名华东师范大学计算机系硕士在读,方向自然语言处理与深度学习喜欢与人分享技术与知识,期待与你的进一步交流~


相关文章
|
6月前
|
人工智能 算法 搜索推荐
电商API的“AI革命”:全球万亿市场如何被算法重新定义?
AI+电商API正引领智能商业变革,通过智能推荐、动态定价与自动化运营三大核心场景,大幅提升转化率、利润率与用户体验。2025年,75%电商API将具备个性化能力,90%业务实现智能决策,AI与API的深度融合将成为未来电商竞争的关键基石。
|
9月前
|
人工智能 算法 数据可视化
机器人训练师狂喜!Infinite Mobility:上海AI Lab造物神器1秒生成可动家具,成本只要1分钱
上海AI Lab推出的Infinite Mobility采用程序化生成技术,可高效生成22类高质量可交互物体,单个生成仅需1秒且成本低至0.01元,已应用于机器人仿真训练等领域。
368 2
机器人训练师狂喜!Infinite Mobility:上海AI Lab造物神器1秒生成可动家具,成本只要1分钱
|
9月前
|
人工智能 算法 API
多模态模型卷王诞生!InternVL3:上海AI Lab开源78B多模态大模型,支持图文视频全解析!
上海人工智能实验室开源的InternVL3系列多模态大语言模型,通过原生多模态预训练方法实现文本、图像、视频的统一处理,支持从1B到78B共7种参数规模。
1376 6
多模态模型卷王诞生!InternVL3:上海AI Lab开源78B多模态大模型,支持图文视频全解析!
|
9月前
|
人工智能 编解码 物联网
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
UNO是字节跳动开发的AI图像生成框架,通过渐进式跨模态对齐和通用旋转位置嵌入技术,解决了多主体场景下的生成一致性问题。该框架支持单主体特征保持与多主体组合生成,在虚拟试穿、产品设计等领域展现强大泛化能力。
603 4
设计师集体破防!UNO:字节跳动创新AI图像生成框架,多个参考主体同框生成,位置/材质/光影完美对齐
|
9月前
|
人工智能 自然语言处理 算法
阿里云 AI 搜索开放平台:从算法到业务——AI 搜索驱动企业智能化升级
本文介绍了阿里云 AI 搜索开放平台的技术的特点及其在各行业的应用。
944 3
|
4月前
|
机器学习/深度学习 人工智能 算法
当AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
TimeGuessr融合AI与历史文化,首创时间与空间双维度评分体系,结合分段惩罚、Haversine距离计算与加权算法,辅以连击、速度与完美奖励机制,实现公平且富挑战性的游戏体验。
|
9月前
|
人工智能 编解码 自然语言处理
DreamActor-M1:字节跳动推出AI动画黑科技,静态照片秒变生动视频
DreamActor-M1是字节跳动研发的AI图像动画框架,通过混合引导机制实现高保真人物动画生成,支持多语言语音驱动和形状自适应功能。
839 40
DreamActor-M1:字节跳动推出AI动画黑科技,静态照片秒变生动视频
|
9月前
|
机器学习/深度学习 人工智能 JSON
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
Paper2Code是由韩国科学技术院与DeepAuto.ai联合开发的多智能体框架,通过规划、分析和代码生成三阶段流程,将机器学习论文自动转化为可执行代码仓库,显著提升科研复现效率。
1200 19
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
|
10月前
|
人工智能 机器人 物联网
SpatialVLA:上海AI Lab联合上科大推出的空间具身通用操作模型
SpatialVLA 是由上海 AI Lab、中国电信人工智能研究院和上海科技大学等机构共同推出的新型空间具身通用操作模型,基于百万真实数据预训练,赋予机器人强大的3D空间理解能力,支持跨平台泛化控制。
346 7
SpatialVLA:上海AI Lab联合上科大推出的空间具身通用操作模型