雙指針數(shù)組(對(duì)應(yīng)Leecode-27,26,977)-創(chuàng)新互聯(lián)

雙指針數(shù)組

成都創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為城中等服務(wù)建站,城中等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為城中企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。文章目錄
  • 雙指針數(shù)組
  • 雙指針數(shù)組介紹
  • 示例題型(對(duì)應(yīng)Leecode題號(hào))
    • 27.移除元素
    • 26.刪除有序數(shù)組中的重復(fù)項(xiàng)
    • 977.有序數(shù)組的平方
  • 總結(jié)


雙指針數(shù)組介紹

例如:雙指針數(shù)組中的指針并非我們常見(jiàn)的c語(yǔ)言指針,它更多指的是對(duì)數(shù)組下標(biāo)操作的兩種標(biāo)量。
他大體可以分為兩類,一類是快慢指針,一個(gè)是頭尾指針。
我們可以借助下面的兩張圖幫助我們理解
(我們根據(jù)題型來(lái)選這二者)
頭尾
快慢

示例題型(對(duì)應(yīng)Leecode題號(hào)) 27.移除元素

代碼如下(示例):
我們先從簡(jiǎn)單的開(kāi)始入手,其實(shí)這個(gè)題就可以利用快慢數(shù)組。
在這里插入圖片描述
在這里插入圖片描述

class Solution {public:
    int removeElement(vector& nums, int val) { int j=0; //慢數(shù)組
         if(nums.size()==0)
         {  return 0;   
         }
         else
         { for(int i =0;i if(nums[i] != val)
                 { nums[j] = nums[i];//當(dāng)條件成立時(shí)  慢數(shù)組下標(biāo)往后移動(dòng)
                     j++;
                 }
             }
         }
         return j;
    }
};
26.刪除有序數(shù)組中的重復(fù)項(xiàng)

代碼如下(示例):
這個(gè)題更為典型 是一個(gè)經(jīng)典的快慢數(shù)組題 ++j = i++ 是解決這類問(wèn)題的核心
在這里插入圖片描述
在這里插入圖片描述

class Solution {public:
    int removeDuplicates(vector& nums) {  int j = 0;//慢數(shù)組
      for(int i=1;i if(nums[j]!=nums[i])
         { nums[++j] = nums[i];//通過(guò)判斷條件來(lái)使慢數(shù)組下標(biāo)往后移
         }

      }
      return j+1;
    }
};
977.有序數(shù)組的平方

代碼如下(示例):
這是一個(gè)經(jīng)典的雙指針應(yīng)用題
無(wú)從下手時(shí),多回憶回憶作者在上面畫的 left-right圖
在這里插入圖片描述

class Solution {public:
    vectorsortedSquares(vector& nums) { int left = 0;
     int right = nums.size()-1;
       vectorresult(nums.size(), 0);//創(chuàng)建新數(shù)組保存平方后的數(shù)據(jù)
     int k = nums.size() -1;//用來(lái)指向新數(shù)組下標(biāo)
     while(left<=right)
     { if(nums[left]*nums[left] result[k--] = nums[right]*nums[right];//因?yàn)樾聰?shù)組時(shí)從小到大  我們從后面開(kāi)始填充元素
             right --;//結(jié)合圖  結(jié)合圖  結(jié)合圖  重要的事情說(shuō)三遍
         }
         else
         { result[k--] = nums[left]*nums[left];//左右開(kāi)始 比較左右元素的大小 誰(shuí)大誰(shuí)放進(jìn)去 并且將位置移動(dòng)到下一側(cè)
             left++;
         }
     }
     return result;
    }
};

總結(jié)

這類題剛?cè)胧謺r(shí)可能有點(diǎn)難度,但只要理解了雙指針?biāo)枷?,便可以很快解決這一類題型。
作者題型:大家初刷Leecode倒也不用過(guò)分在意時(shí)間 空間復(fù)雜度,刷多了自然就會(huì)優(yōu)化了。
一起加油~~~~

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:雙指針數(shù)組(對(duì)應(yīng)Leecode-27,26,977)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://muchs.cn/article8/hijop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司