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