国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

wordpress+調(diào)用+編輯器長(zhǎng)沙官網(wǎng)seo技術(shù)

wordpress+調(diào)用+編輯器,長(zhǎng)沙官網(wǎng)seo技術(shù),小說(shuō)網(wǎng)站的內(nèi)容做,縮短網(wǎng)址在線(xiàn)生成🌈個(gè)人主頁(yè):秋風(fēng)起,再歸來(lái)~ 🔥系列專(zhuān)欄:C刷題算法總結(jié) 🔖克心守己,律己則安 目錄 1、有效三角形的個(gè)數(shù) 2、查找總價(jià)值為目標(biāo)值的兩個(gè)商品 3、三數(shù)之和 4、四數(shù)之和 5、完結(jié)散花 1、有…

🌈個(gè)人主頁(yè):秋風(fēng)起,再歸來(lái)~
?🔥系列專(zhuān)欄:C++刷題算法總結(jié)? ? ??
🔖克心守己,律己則安

目錄

1、有效三角形的個(gè)數(shù)

2、查找總價(jià)值為目標(biāo)值的兩個(gè)商品

?3、三數(shù)之和

4、四數(shù)之和?

5、完結(jié)散花


1、有效三角形的個(gè)數(shù)

題目鏈接icon-default.png?t=O83Ahttps://leetcode.cn/problems/valid-triangle-number/description/

給定一個(gè)包含非負(fù)整數(shù)的數(shù)組?nums?,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。

示例 1:

輸入: nums = [2,2,3,4]
輸出: 3
解釋:有效的組合是: 
2,3,4 (使用第一個(gè) 2)
2,3,4 (使用第二個(gè) 2)
2,2,3

示例 2:

輸入: nums = [4,2,3,4]
輸出: 4

解題思路:

1、 暴力解法:我們可以很輕松的想到枚舉所有的三條變,判斷它們是否可以組成三角形,記錄有效三角形的個(gè)數(shù)即可。不過(guò)n^3的時(shí)間復(fù)雜度會(huì)超出時(shí)間限制!

class Solution {
public:int triangleNumber(vector<int>& nums) {int len=nums.size(),count=0;for(int a=0;a<len-2;a++){for(int b=a+1;b<len-1;b++){for(int c=b+1;c<len;c++){if(nums[a]+nums[b]>nums[c]&&nums[a]+nums[c]>nums[b]&&nums[b]+nums[c]>nums[a]) count++;}}}return count;}
};

2、更優(yōu)解法:我們先將數(shù)組排序,因?yàn)榕袛嗳齻€(gè)數(shù)是否可以構(gòu)成三角形只需要比較較小兩邊之和是否大于第三邊即可。

3、排序后,nums[len-1]的位置就是最大值,我們先用max固定一端,right固定在max左側(cè),left固定在起點(diǎn)。

4、判斷nums[left]+nums[right]是否大于nums[max]

? ? ? ? a、如果小于,left++

? ? ? ? b、如果大于,count+=(right-left?),固定max和right兩邊后,left是right之后最小的一邊。如果最小的一邊加上right都大于max,那其后的邊一定可以構(gòu)成三角形。所以我們就沒(méi)有必要進(jìn)行無(wú)意義的枚舉。

? ? ? ? c、此時(shí)固定max和right的情況已近枚舉完成,那我們就讓right--。

class Solution {
public:int triangleNumber(vector<int>& nums) {int max=nums.size()-1,count=0;//排序sort(nums.begin(),nums.end());//固定枚舉maxwhile(max>=2){//固定枚舉rightint right=max-1;int left=0;while(left<right){if(nums[left]+nums[right]>nums[max]) {count+=(right-left);right--;}else left++;}max--;}return count;}
};

2、查找總價(jià)值為目標(biāo)值的兩個(gè)商品

題目鏈接icon-default.png?t=O83Ahttps://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/description/

購(gòu)物車(chē)內(nèi)的商品價(jià)格按照升序記錄于數(shù)組?price。請(qǐng)?jiān)谫?gòu)物車(chē)中找到兩個(gè)商品的價(jià)格總和剛好是?target。若存在多種情況,返回任一結(jié)果即可。

示例 1:

輸入:price = [3, 9, 12, 15], target = 18
輸出:[3,15] 或者 [15,3]

示例 2:

輸入:price = [8, 21, 27, 34, 52, 66], target = 61
輸出:[27,34] 或者 [34,27]

由于題目比較簡(jiǎn)單,直接上代碼了!?

class Solution {
public:vector<int> twoSum(vector<int>& price, int target) {int left=0,right=price.size()-1;while(left<right){if(price[left]+price[right]<target) left++;else if(price[left]+price[right]>target) right--;else {//走隱式類(lèi)型轉(zhuǎn)換return {price[left],price[right]};}}return {-1,-1};}
};

?3、三數(shù)之和

題目鏈接icon-default.png?t=O83Ahttps://leetcode.cn/problems/3sum/description/

給你一個(gè)整數(shù)數(shù)組?nums?,判斷是否存在三元組?[nums[i], nums[j], nums[k]]?滿(mǎn)足?i != j、i != k?且?j != k?,同時(shí)還滿(mǎn)足?nums[i] + nums[j] + nums[k] == 0?。請(qǐng)你返回所有和為?0?且不重復(fù)的三元組。

注意:答案中不可以包含重復(fù)的三元組。

示例 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 。

解題思路:

1、這個(gè)題目的整體思路可以轉(zhuǎn)化為兩數(shù)之和==target,和上一道題目相似,不過(guò)在細(xì)節(jié)上還是有些不同。

2、排序后,我們定義target在len-1的位置,left=0,right=target-1。判斷nums[left]+nums[right]==-nums[target]就可以了。

>不過(guò),這里還涉及到去重的問(wèn)題:

我們找到一個(gè)三元組后,left++,right--

a.如果left==left--,那么我們找到的下一個(gè)三元組必然和前一個(gè)相等!(因?yàn)閘eft和target固定了)

b.同理,如果right==right+1,那么我們找到的下一個(gè)三元組必然和前一個(gè)相等!

c.再有,如果target==target+1,我們?cè)谙乱粋€(gè)區(qū)間查找的所有情況再上一個(gè)區(qū)間都查找過(guò)了!

d.所以這三種情況我們都要跳過(guò)相同的元素來(lái)進(jìn)行去重操作!

解題代碼:

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> ret;sort(nums.begin(),nums.end());//排序int len=nums.size();for(int target=len-1;target>=2;){if(nums[target]<0) break;//小優(yōu)化int left=0,right=target-1;while(left<right){if(nums[left]+nums[right]<-nums[target]) left++;else if(nums[left]+nums[right]>-nums[target]) right--;else {ret.push_back({nums[left++],nums[right--],nums[target]});//去重while(left<right&&nums[left]==nums[left-1]) left++;while(left<right&&nums[right]==nums[right+1]) right--;}}//去重target--;while(target>=2&&nums[target]==nums[target+1]) target--;}return ret;}
};

4、四數(shù)之和?

題目鏈接icon-default.png?t=O83Ahttps://leetcode.cn/problems/4sum/description/

給你一個(gè)由?n?個(gè)整數(shù)組成的數(shù)組?nums?,和一個(gè)目標(biāo)值?target?。請(qǐng)你找出并返回滿(mǎn)足下述全部條件且不重復(fù)的四元組?[nums[a], nums[b], nums[c], nums[d]]?(若兩個(gè)四元組元素一一對(duì)應(yīng),則認(rèn)為兩個(gè)四元組重復(fù)):

  • 0 <= a, b, c, d?< n
  • a、b、c?和?d?互不相同
  • nums[a] + nums[b] + nums[c] + nums[d] == target

你可以按?任意順序?返回答案 。

示例 1:

輸入:nums = [1,0,-1,0,-2,2], target = 0
輸出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]

示例 2:

輸入:nums = [2,2,2,2,2], target = 8
輸出:[[2,2,2,2]]

解題思路:?

1、這道題目的整體思路和三數(shù)之和差不多,我們可以把上一題理解為兩數(shù)之和==target(0) - 一個(gè)數(shù)(自己固定枚舉)。

2、而這道題目無(wú)非就是再三數(shù)之和的基礎(chǔ)上,再多枚舉一個(gè)數(shù)而已!

解題代碼:

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {int len=nums.size();sort(nums.begin(),nums.end());vector<vector<int>> ret;for(int d=len-1;d>=3;){if(target<0&&nums[0]>=0) break;//小優(yōu)化//三數(shù)之和邏輯for(int c=d-1;c>=2;){long long tmp=(long long)target-nums[c]-nums[d];int left=0;int right=c-1;while(left<right){if(nums[left]+nums[right]<tmp) left++;else if(nums[left]+nums[right]>tmp) right--;else{ret.push_back({nums[left++],nums[right--],nums[c],nums[d]});//left,right去重while(left<right&&nums[left]==nums[left-1]) left++;while(left<right&&nums[right]==nums[right+1]) right--;}}//c去重c--;while(c>=2&&nums[c]==nums[c+1]) c--;}//d去重d--;while(d>=3&&nums[d]==nums[d+1]) d--;}return ret;}
};

5、完結(jié)散花

好了,這期的分享到這里就結(jié)束了~

如果這篇博客對(duì)你有幫助的話(huà),可以用你們的小手指點(diǎn)一個(gè)免費(fèi)的贊并收藏起來(lái)喲~

如果期待博主下期內(nèi)容的話(huà),可以點(diǎn)點(diǎn)關(guān)注,避免找不到我了呢~

我們下期不見(jiàn)不散~~

????

http://m.aloenet.com.cn/news/29764.html

相關(guān)文章:

  • 網(wǎng)站空間大小選擇百度怎么投放自己的廣告
  • 免費(fèi)行情軟件網(wǎng)站有哪些sem競(jìng)價(jià)外包公司
  • 騰訊云可以做網(wǎng)站嗎3百度網(wǎng)盤(pán)免費(fèi)下載
  • 沈陽(yáng)市網(wǎng)站制作廣東省人大常委會(huì)
  • 一級(jí)a做爰網(wǎng)站下載代發(fā)軟文
  • 深圳光明廣州網(wǎng)絡(luò)seo優(yōu)化
  • 使用免費(fèi)的代碼做網(wǎng)站品牌廣告
  • 公司企業(yè)網(wǎng)站制作教程推廣專(zhuān)家
  • 網(wǎng)站開(kāi)發(fā)常見(jiàn)問(wèn)題總結(jié)百度收錄關(guān)鍵詞查詢(xún)
  • 成都模板建站代理seo站長(zhǎng)工具下載
  • 木工支模價(jià)格明細(xì)表搜索引擎優(yōu)化的流程是什么
  • 自己做網(wǎng)站哪種好做搜索引擎優(yōu)化的策略主要有
  • 網(wǎng)站建設(shè)江門(mén)游戲代理加盟
  • 河南平臺(tái)網(wǎng)站建設(shè)價(jià)位百度網(wǎng)站網(wǎng)址是多少
  • 深圳定制網(wǎng)站制作費(fèi)用百度智能建站系統(tǒng)
  • 網(wǎng)站開(kāi)發(fā)技術(shù)實(shí)驗(yàn)教程seo推廣優(yōu)化的方法
  • 漢中門(mén)戶(hù)網(wǎng)工程招標(biāo)杭州seo網(wǎng)站哪家好
  • 高端網(wǎng)站建設(shè)費(fèi)用深圳網(wǎng)絡(luò)推廣公司哪家好
  • 個(gè)人接做網(wǎng)站多少錢(qián)app優(yōu)化方案
  • 汕頭有建網(wǎng)站公司嗎seo案例
  • 公司和網(wǎng)站備案查詢(xún)密碼網(wǎng)絡(luò)營(yíng)銷(xiāo)和傳統(tǒng)營(yíng)銷(xiāo)的區(qū)別有哪些
  • 宣傳片視頻西安seo排名
  • wordpress采集網(wǎng)頁(yè)文章安卓?jī)?yōu)化大師app下載
  • 工作總結(jié)ppt模板免費(fèi)寧波優(yōu)化推廣選哪家
  • 桂林做網(wǎng)站的公司seo是哪里
  • 購(gòu)物網(wǎng)站開(kāi)發(fā)技術(shù)河北網(wǎng)站優(yōu)化公司
  • 網(wǎng)站風(fēng)格類(lèi)型百度流量統(tǒng)計(jì)
  • 為什么做電子商務(wù)網(wǎng)站的原因中國(guó)建設(shè)網(wǎng)官方網(wǎng)站
  • 制作一個(gè)買(mǎi)股票的網(wǎng)站怎么做seo比較好的公司
  • 網(wǎng)站畢業(yè)設(shè)計(jì)怎么做網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣活動(dòng)有哪些