題目來源:https://leetcode.cn/problems/4sum/description/
成都創(chuàng)新互聯公司是一家專注于網站制作、成都網站設計與策劃設計,遠安網站建設哪家好?成都創(chuàng)新互聯公司做網站,專注于網站建設十載,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:遠安等地區(qū)。遠安做網站價格咨詢:18980820575C++題解:第一次嘗試,數組排序后,分別從兩端各自往里走,單個樣例都能通過,但是超時
class Solution {
public:
vector>fourSum(vector& nums, int target) {
sort(nums.begin(),nums.end());
int len = nums.size();
int iii,jjj;
vector>daan;
for(int ii = 0; ii< len-3; ii++){
if(nums[ii] >250000000) break;
for(int jj = len-1; jj >ii+2; jj--){
if(nums[jj]< -250000000) break;
for(int kk = ii+1; kk< jj-1; kk++){
if(nums[ii] + nums[jj] + nums[kk] >1000000000) break;
for(int ll = jj-1; ll >kk; ll--){
if(nums[ii] + nums[jj] + nums[kk] + nums[ll] == target) {
daan.push_back({nums[ii], nums[kk], nums[ll], nums[jj]});
//cout<ii+2)) jj--;
}
while((nums[ii+1] == nums[ii])&&(ii+1< len-3)) ii++;
}
return daan;
}
};
第一次遇到測試用例全部通過但是超時的情況
將第四個數的位置定位成二分查找。對一些超出int的范圍的情況做一些限制
class Solution {
public:
vector>fourSum(vector& nums, int target) {
sort(nums.begin(),nums.end());
int len = nums.size();
int jjj,kkk,ll;
vector>daan;
for(int ii = 0; ii< len-3; ii++){
if(nums[ii] >250000000) break;
for(int jj = len-1; jj >ii+2; jj--){
if(nums[jj]< -250000000) break;
for(int kk = ii+1; kk< jj-1; kk++){
if(nums[ii] + nums[jj] + nums[kk] >1000000000) break;
kkk = kk; jjj = jj;
ll = floor((kkk+jjj)/2);
while(ll!=kkk){
if((nums[kk]/2 + nums[ll]/2 + nums[jj]/2< -500000000)or(nums[ii] + nums[jj] + nums[kk] + nums[ll] >target)){
jjj = ll;
ll = floor((kkk+jjj)/2);
}
else if((nums[kk]/2 + nums[ll]/2 + nums[jj]/2 >500000000)or(nums[ii] + nums[jj] + nums[kk] + nums[ll]< target)){
kkk = ll;
ll = floor((kkk+jjj)/2);
}
else{ //相等的情況
daan.push_back({nums[ii], nums[kk], nums[ll], nums[jj]});
break;
}
}
while((nums[kk+1] == nums[kk])&&(kk+1< jj-1)) kk++;
}
while((nums[jj] == nums[jj-1])&&(jj-1 >ii+2)) jj--;
}
while((nums[ii+1] == nums[ii])&&(ii+1< len-3)) ii++;
}
return daan;
}
};
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁題目:力扣18.四數之和-創(chuàng)新互聯
文章地址:http://chinadenli.net/article28/dhjdjp.html
成都網站建設公司_創(chuàng)新互聯,為您提供企業(yè)建站、App設計、移動網站建設、做網站、網站建設、云服務器
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯