阿里命中率最高的基础考题,你真的掌握了吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hakunamatata11
V2EX    推广

阿里命中率最高的基础考题,你真的掌握了吗?

  •  
  •   hakunamatata11 2019-12-20 17:04:41 +08:00 3232 次点击
    这是一个创建于 2133 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背包问题 (Knapsack problem) 是一种组合优化的 NP 完全问题。

    一般来说,就是给定一组有固定价值和固定重量的物品,以及一个已知最大承重量的背包,求在不超过背包最大承重量的前提下,能放进背包里面的物品的最大总价值。

    image

    如果用一句话形象地描述,大概就是:有个小偷半夜闯入豪宅,可以偷的东西非常多,但是负重能力有限,偷哪些东西才更加不枉此行?

    这一类问题是典型的使用动态规划解决的问题,我们可以把背包问题分成 3 种不同的子问题:0-1 背包问题、完全背包和多重背包问题,剩下一些都是这 3 种的变形以及组合。

    • 01 背包

    有 N 件物品和一个容量为 V 的背包,第 i 件物品消耗的容量为 Ci,价值为 Wi,求解放入哪些物品可以使得背包中总价值最大。

    • 完全背包

    有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用,第 i 件物品消耗的容量为 Ci,价值为 Wi,求解放入哪些物品可以使得背包中总价值最大。

    • 多重背包

    有 N 种物品和一个容量为 V 的背包,第 i 种物品最多有 Mi 件可用,每件物品消耗的容量为 Ci,价值为 Wi,求解放入哪些物品可以使得背包中总价值最大。

    2.背包问题的难点在哪里?

    三种背包问题都有一个共同的限制,那就是背包容量,背包的容量是有限的,这便限制了物品的选择,而三种背包问题的共同目的,便是让背包中的物品价值最大。

    不同的地方在于物品数量的限制,不过虽然三种背包问题对于物品数量的限制不一样,但都可以转化为 01 背包问题来进行思考。 所以说,01 背包问题是所有背包问题的基础,弄懂了 01 背包问题后,完全背包和多重背包就没有什么困难的地方了

    image

    但真正在面试中,你可能会遇到很多背包问题的变形。如果你没有一双火眼金睛,一眼看出题目的本质其实是个背包问题,你可能会走很多弯路。 如:

    • Target sum 问题( LintCode 链接:Target sum
    • Airbnb 的 menu order 问题(点菜,菜的价格为 double, 问如何正好花完手中的钱)

    本质上都是背包问题,很多同学没有看透问题的真面目,会觉得每道题都是独立的,很难做到举一反三,于是就深陷其中不得章法,如果把背包问题的几种类型都弄懂,类似的很多题其实都能迎刃而解了。

    如果你不会辨别背包问题,去听《背包四讲》吧,里面讲了很多 Facebook,Google,BAT 等大厂的面试高频题(领取方式见文末)。

    3.01 背包问题及其题解

    背包问题都有哪些经典例题呢?

    01 背包

    在 N 个物品中挑选若干物品装入背包,最多能装多满? 假设背包的大小为 V,第 i 个物品的大小为 C[i] 注意:你不可以将物品进行切割。

    有 N 件物品和一个容量为 V 的背包。放入第 i 件物品耗费的费用是 Ci,得到的价值是 Wi。求解将哪些物品装入背包可使价值总和最大?

    如果你想把这个知识点学得更透彻,可以听一听《背包四讲基础知识和刷题都覆盖到了

    这门原价$199 的课程,现在$1 秒杀!

    参与方式:

    戳我免费试听后,添加九章 Sunny 微信 jiuzhang15,回复 [ V2EX 背包] + 试听报名截图即可**$1 购买本课程**。

    6 条回复    2020-01-07 10:29:32 +08:00
    SsorryQaQ
        1
    SsorryQaQ  
       2019-12-20 20:30:21 +08:00   3
    为啥不看《背包九讲》而是看你这个呢?
    hakunamatata11
        2
    hakunamatata11  
    OP
       2019-12-23 15:28:33 +08:00
    @SsorryQaQ 你可以报名免费试听看看哦~
    wysnylc
        3
    wysnylc  
       2019-12-30 11:45:13 +08:00 via Android
    @SsorryQaQ 他心里肯定骂你无数遍,断人财路杀人父母
    cshlxm
        4
    cshlxm  
       2019-12-30 11:52:59 +08:00
    背包问题不是经典运筹学 问题么,找个运筹学的书看看,再看算法就没那么难了
    mainjzb
        5
    mainjzb  
       2020-01-06 19:48:56 +08:00 via Android
    只有我看成 阿里命中高考题吗
    hakunamatata11
        6
    hakunamatata11  
    OP
       2020-01-07 10:29:32 +08:00
    @wysnylc 何必戾气那么重呢 怼别人自己就能得到钱还是内在提高呀?每天蹲在网络世界逮着不认识的人输入负能量为荣嘛?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5201 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 07:30 PVG 15:30 LAX 00:30 JFK 03:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86