• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 183,  comments - 10,  trackbacks - 0

            兩個指針的作用

            兩個指針一般用在一個序列中。
            在一個序列中處理問題時,如果只使用一個指針,可能會造成雙重循環的問題,結果時間復雜度會是 O(N) 。
            如果采用兩個指針可以很好地解決問題,時間復雜度也可以得到改進。

            采用兩個指針的例子很多,這里舉幾個:
            1.
            自動文摘中,如果采用循環查找的方法,時間復雜度是冪次方。采用兩個指針,分別指向文摘的開始處和結束處可以在 O(N) 的時間復雜度內找到文摘。

            2.
            求連續數字之和等于一給定數,例如給定數是 15 ,則結果有 1 2 3 4 5、4 5 6、7 8 三種結果。
            如果采用循環的方法事件復雜度是 O(N^2)
            可以采用兩個指針,分別指向 small 和 big 。當 sum(small ... big) 大于給定數時,small 指針右移,當 sum 小于給定數時,big 指針右移。直到 small 是給定數的一半時。

            3.
            調整數組,是前半部分是某種類型的數,后半部分是某種類型的數。
            比如前半部分是奇數,后半部分是偶數
            前半部分是負數,后半部分是非負數
            采用兩個指針,分別從左右兩端進行掃描,檢測,如果符合條件則交換兩數,直到兩個指針交叉為止。

            4.
            求一個數組中兩個數的和等于一定數。
            先對數組排序
            然后從數組兩端用兩個指針掃描,檢測,直到兩個指針交叉為止。

            當一個指針無法很好解決問題時,應該再增添一個指針,多一個幫手。

            posted on 2011-09-13 13:12 unixfy 閱讀(206) 評論(0)  編輯 收藏 引用
            国产精品九九九久久九九| 欧洲国产伦久久久久久久| 亚洲αv久久久噜噜噜噜噜| 久久强奷乱码老熟女网站| 久久久亚洲欧洲日产国码是AV | 亚洲国产精品无码久久SM| 久久w5ww成w人免费| 久久天天躁狠狠躁夜夜2020老熟妇| 久久天天躁狠狠躁夜夜2020一| 久久国产精品-久久精品| 久久无码专区国产精品发布| 久久电影网2021| 亚洲AV无码久久精品色欲| 狠狠久久综合伊人不卡| 色88久久久久高潮综合影院| 欧美成a人片免费看久久| 国产精品禁18久久久夂久| 久久青青草原精品国产软件| 久久成人精品视频| 久久久久99精品成人片欧美| 欧美精品九九99久久在观看| 久久亚洲欧美日本精品| 无遮挡粉嫩小泬久久久久久久| 天堂无码久久综合东京热| 欧美日韩中文字幕久久伊人| 国产精品99久久久精品无码| 人妻无码久久精品| 精品国产91久久久久久久a | 久久狠狠一本精品综合网| 国产精品久久久久无码av| 久久亚洲春色中文字幕久久久| 中文精品久久久久人妻| 污污内射久久一区二区欧美日韩| 99久久精品无码一区二区毛片| 久久精品国内一区二区三区| 国产精品一区二区久久精品| 久久亚洲私人国产精品vA| 亚洲国产欧洲综合997久久| 热re99久久精品国99热| 国产美女久久精品香蕉69| 国产成人久久精品一区二区三区 |