目錄
創(chuàng)新互聯(lián)是專業(yè)的薩迦網(wǎng)站建設公司,薩迦接單;提供做網(wǎng)站、網(wǎng)站設計,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行薩迦網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!問題描述:
實現(xiàn)代碼:
給你一個整數(shù)數(shù)組?nums
,判斷是否存在三元組?[nums[i], nums[j], nums[k]]
滿足?i != j
、i != k
且?j != k
,同時還滿足?nums[i] + nums[j] + nums[k] == 0
。請
你返回所有和為?0
且不重復的三元組。
注意:答案中不可以包含重復的三元組。
示例 1:
輸入:nums = [-1,0,1,2,-1,-4]
輸出:[[-1,-1,2],[-1,0,1]]
解釋:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元組是 [-1,0,1] 和 [-1,-1,2] 。
注意,輸出的順序和三元組的順序并不重要。
示例 2:
輸入:nums = [0,1,1]
輸出:[]
解釋:唯一可能的三元組和不為 0 。
示例 3:
輸入:nums = [0,0,0]
輸出:[[0,0,0]]
解釋:唯一可能的三元組和為 0 。
實現(xiàn)代碼:雙指針法
class Solution {
public:
vector>threeSum(vector& nums)
{
vector>result;//用于返回
sort(nums.begin(),nums.end());//先將其排序
for(int i=0;i0)
{
return result;
}
//對i指針去重
if(i>0&&nums[i]==nums[i-1])
{
continue;
}
int left=i+1;
int right=nums.size()-1;
while(left0) right--;
else if(nums[i]+nums[left]+nums[right]<0) left++;
else
{
result.push_back(vector{nums[i],nums[left],nums[right]});
//left指針去重
while(left
我們先給數(shù)組排序,然后用一個循環(huán)來遍歷數(shù)組,這個遍歷指針i就為第一個指針,然后定義left指針指向i后面一個數(shù),right指針指向數(shù)組中最后一個數(shù)nums.size()-1。
然后就是最重要的去重操作。
首先對于指針i去重:
if(i>0&&nums[i]==nums[i-1])
{
continue;
}
當指針i指向的數(shù)與其前一個數(shù)相同時,直接continue跳出此次循環(huán),直接進行下一次循環(huán)。這里為什么不是與其后一個數(shù)相比而是與前一個數(shù)相比呢,因為如果是和后一個數(shù)相比,會直接在第一次遇到這個數(shù)的時候就跳出循環(huán),導致指針i指向這個數(shù)的情況沒有記錄到,所以這里要與前一個數(shù)相比。
然后是對于指針left和指針right去重:
//left指針去重
while(left
當left指向的數(shù)與其后一個數(shù)相同時,向右移動left。
當right指向的數(shù)與其前一個數(shù)相同時,想左移動right。
最后left++,right--,使其指向第一個不同的數(shù)。
至于為什么不把這個兩個去重條件一開始就寫在while循環(huán)里呢,原因和上面i指針的一樣,至少要記錄一次然后再判斷,全跳過去不就一次都沒用這個數(shù)了么。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文標題:Leetcode:15.三數(shù)之和(C++)-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://m.newbst.com/article46/hpoeg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站設計、網(wǎng)站導航、域名注冊、面包屑導航、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容