• <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)  編輯 收藏 引用
            久久久精品国产亚洲成人满18免费网站| 久久久久久久综合综合狠狠| 伊人久久大香线蕉av一区| 区久久AAA片69亚洲| 久久丫精品国产亚洲av| 色噜噜狠狠先锋影音久久| 欧美一级久久久久久久大| 欧美一区二区三区久久综| 狠狠人妻久久久久久综合| 久久婷婷成人综合色综合| 国产亚洲成人久久| 91精品国产乱码久久久久久| 日韩电影久久久被窝网| 久久这里只有精品久久| 久久人人爽爽爽人久久久| 色综合久久夜色精品国产| 国产精品免费看久久久香蕉| 国产亚洲美女精品久久久久狼| 久久久精品国产免大香伊| 欧美伊人久久大香线蕉综合69| 久久亚洲综合色一区二区三区| 久久香蕉超碰97国产精品| 久久久久亚洲精品日久生情| 思思久久好好热精品国产| 天堂无码久久综合东京热| 久久久久国产成人精品亚洲午夜| 日本福利片国产午夜久久| 国内精品久久久久影院优| 男女久久久国产一区二区三区| 色播久久人人爽人人爽人人片AV| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 99久久精品国产免看国产一区| 亚洲人成无码网站久久99热国产| 国产69精品久久久久99尤物| 精品久久久无码中文字幕| 国产精品99久久久久久猫咪| 国产三级观看久久| 久久久久国产一级毛片高清板| a级毛片无码兔费真人久久| 久久久久97国产精华液好用吗| 国产午夜福利精品久久|