• <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 閱讀(201) 評論(0)  編輯 收藏 引用
            无码任你躁久久久久久| 亚洲欧洲久久av| 99国产精品久久久久久久成人热| 久久国产免费直播| 亚洲国产精品人久久| 欧美日韩中文字幕久久久不卡 | 国产精品九九久久免费视频 | 久久精品麻豆日日躁夜夜躁| 久久精品国产半推半就| 青青青青久久精品国产h久久精品五福影院1421 | 2020最新久久久视精品爱| 日本精品久久久久影院日本| 久久精品亚洲中文字幕无码麻豆| 精品国产乱码久久久久久浪潮| 亚洲人AV永久一区二区三区久久| 国产精品无码久久久久久| 欧美与黑人午夜性猛交久久久| 久久精品夜夜夜夜夜久久| 一本久久a久久精品综合香蕉| 久久精品中文字幕无码绿巨人| 久久这里只精品99re66| 国产免费久久久久久无码| 久久国产热精品波多野结衣AV| 中文字幕久久亚洲一区| 久久99精品久久久久久9蜜桃 | 亚洲国产精品久久| 久久人人爽人人爽人人AV| 怡红院日本一道日本久久| 久久天天躁狠狠躁夜夜avapp | 久久精品青青草原伊人| 亚洲午夜福利精品久久| 久久青青草原精品国产不卡| 亚洲国产精品一区二区久久| 久久精品免费一区二区三区| 国产美女久久精品香蕉69| 久久久久AV综合网成人| 高清免费久久午夜精品| 久久精品国产亚洲av影院| 99久久国产热无码精品免费| 国产精品久久久亚洲| 色综合合久久天天综合绕视看|