• <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)  編輯 收藏 引用
            久久久久成人精品无码中文字幕| 国产精品99精品久久免费| 国产精品久久久久乳精品爆| 国产精品99久久久久久猫咪| 久久久这里只有精品加勒比| 久久综合给久久狠狠97色| 色综合久久精品中文字幕首页| 亚洲人AV永久一区二区三区久久| 亚洲成色www久久网站夜月| 国产成人久久久精品二区三区 | 色综合久久夜色精品国产| 久久人人爽爽爽人久久久| 久久婷婷五月综合成人D啪| 狠狠精品久久久无码中文字幕| 9191精品国产免费久久| 亚洲午夜久久久久久久久久| 久久久亚洲精品蜜桃臀| 青青青伊人色综合久久| 亚洲色大成网站www久久九| 欧美久久亚洲精品| 国产精品成人精品久久久| 国产麻豆精品久久一二三| 久久99久久99精品免视看动漫| 久久久久久青草大香综合精品| 久久91精品国产91久久麻豆| 性做久久久久久久| 国产aⅴ激情无码久久| 久久91精品国产91| 久久久久久国产a免费观看黄色大片| 久久99精品久久久久久不卡| 国产精品九九久久免费视频 | 亚洲AV日韩精品久久久久久| 青青草原综合久久大伊人| 日本精品久久久久久久久免费| A级毛片无码久久精品免费| 久久综合九色综合欧美狠狠| 久久国产成人午夜aⅴ影院 | 狠狠色丁香久久婷婷综合| 久久不见久久见免费视频7| 亚洲а∨天堂久久精品| 国产99久久九九精品无码|