20180325 今日算法 - V2EX script> const topicId = 441201; var Once= "58026"; document.addEventListener("DOMContentLoaded", () => { protectTraffic(); if (typeof reloadTopicTips !== 'undefined') { window.reloadTopicTips = reloadTopicTips; } const observer = new IntersectionObserver( ([e]) => e.target.toggleAttribute('stuck', e.intersectionRatio < 1), {threshold: [1]} ); observer.observe(document.getElementById('reply-box')); $('#Main').on('click', '.no, .ago', function () { location.hash = $(this).parents('.cell').prop('id'); }); // refresh once document.addEventListener('visibilitychange', e => { if (document.visibilityState === 'visible') { fetchOnce().then(Once=> { $('#once').val(once); }); } }); if (location.search.indexOf('p=') > -1) { const p = Number(location.search.split('p=')[1].split('&')[0]); if (p) { const key = 'tp441201'; if (lscache.set(key, p, 60 * 24 * 30)) { // 30 days console.log(`Saved topic page number to ${key}: ` + p); } } } });
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
gbin

20180325 今日算法

  •  
  •   gbin Mar 25, 2018 via Android 3628 views
    This topic created in 2955 days ago, the information mentioned may be changed or developed.
    输出数组 s 前 k 个大的元素( k 不大于数组的长度)

    如:
    s =[4,2,8,3,6,5],k=3
    则输出
    6,5,8(输出顺序不必考虑)
    13 replies    2018-03-25 19:14:56 +08:00
    lhx2008
        1
    lhx2008  
       Mar 25, 2018 via Android   1
    维护一个 k 大小的最小堆
    gbin
        2
    gbin  
    OP
       Mar 25, 2018 via Android
    @lhx2008 正解。想起有一次面试问我这个题,我说了思路,那时候最小堆还真写不出来。
    clearbug
        3
    clearbug  
       Mar 25, 2018 via Android
    利用快排的思维
    Andiry
        4
    Andiry  
       Mar 25, 2018
    QuickSort partition
    wjm2038
        5
    wjm2038  
       Mar 25, 2018 via Android
    @gbin 请问下最小堆是啥啊
    aidaizyy
        6
    aidaizyy  
       Mar 25, 2018
    不考虑顺序的话,没必要用最小堆,用快排思想就可以了,时间复杂度要低一些。
    zjp
        7
    zjp  
       Mar 25, 2018 via Android
    正在做 LeetCode 215.Kth Largest Element in An array
    才发现上学期刚学过快速选择…
    gbin
        8
    gbin  
    OP
       Mar 25, 2018 via Android
    @wjm2038 最小堆就是一种有序的完全二叉树,父结点总是不小于子结点。你可以看一下 wikipedia https://zh.wikipedia.org/zh-hans/%E6%9C%80%E5%A4%A7%E2%80%94%E6%9C%80%E5%B0%8F%E5%A0%86
    mrcn
        9
    mrcn  
       Mar 25, 2018 via Android
    堆应该是 O(kLog n),快排思想应该也是这个?
    GGGG430
        10
    GGGG430  
       Mar 25, 2018 via iPhone
    快排倒叙取 topk/小顶堆 /维护一个大小为 k 的数组
    stevenbipt
        11
    stevenbipt  
       Mar 25, 2018 via Android
    top k 问题⊙⊙才在算法导论上学了这个算法,当初自己没学这个的时候就直接排然后找到最大的数字输出然后删除最大的数字,然后继续找出来最大输出然后删除,这样进行 k 次
    stevenbipt
        12
    stevenbipt  
       Mar 25, 2018 via Android
    这个问题不要求排序直接用快速排序的思想效率应该是相对比较高的
    victor97
        13
    victor97  
       Mar 25, 2018 via Android
    快排的思路,时间复杂度是 O(n)的
    About     Help     Advertise     Blog     API     FAQ     Solana     3564 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 11:17 PVG 19:17 LAX 04:17 JFK 07:17
    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