国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【算法專題突破】雙指針 - 和為s的兩個數(shù)字(6)

這篇具有很好參考價值的文章主要介紹了【算法專題突破】雙指針 - 和為s的兩個數(shù)字(6)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄?

1. 題目解析

2. 算法原理

3. 代碼編寫

寫在最后:


1. 題目解析

題目鏈接:劍指 Offer 57. 和為s的兩個數(shù)字 - 力扣(Leetcode)

【算法專題突破】雙指針 - 和為s的兩個數(shù)字(6),算法專題訓練,c++,算法

?這道題題目就一句話但是也是有信息可以提取的,

最重要的就是開始的那句話,“遞增序列”

然后在數(shù)組中找出兩個和為s的數(shù)即可(而且是任意一對即可)

2. 算法原理

這道題很簡單,如果用暴力枚舉直接兩層for循環(huán)搞定就行,

但是使用暴力解法的話,就沒有利用到他是有序序列的這個特性了。

看到有序一般我們會想到用二分法,但是二分比較難寫,

所以我就打算利用單調(diào)性使用雙指針來解這道題:

我們用 left 指針指向左邊,right 指針指向右邊,然后開始操作:

sum 是 left + right 的值,

如果:sum < target ,就讓 left 指針右移找更大的數(shù)

如果:sum > target ,就讓 right 指針左移找更小的數(shù)

如果:sum == target ,返回結(jié)果即可。

3. 代碼編寫

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int left = 0, right = nums.size() - 1;
        vector<int> ans;
        while(left < right) {
            int sum = nums[left] + nums[right];
            if(sum < target) left++;
            else if(sum > target) right--;
            else {
                ans.push_back(nums[left]);
                ans.push_back(nums[right]);
                break;
            }
        }
        return ans;
    }
};

寫在最后:

以上就是本篇文章的內(nèi)容了,感謝你的閱讀。

如果感到有所收獲的話可以給博主點一個哦。

如果文章內(nèi)容有遺漏或者錯誤的地方歡迎私信博主或者在評論區(qū)指出~文章來源地址http://www.zghlxwxcb.cn/news/detail-700176.html

到了這里,關于【算法專題突破】雙指針 - 和為s的兩個數(shù)字(6)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【算法專題突破】雙指針 - 快樂數(shù)(3)

    【算法專題突破】雙指針 - 快樂數(shù)(3)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:202. 快樂數(shù) - 力扣(Leetcode) 這道題的題目也很容易理解, 看一下題目給的示例就能很容易明白, 但是要注意一個點,最后有可能無限循環(huán)無法到達1。 這個時候我們就要想一下怎么判斷他是無線循環(huán)呢? 實際

    2024年02月11日
    瀏覽(17)
  • 【算法專題突破】雙指針 - 移動零(1)

    【算法專題突破】雙指針 - 移動零(1)

    目錄 寫在前面 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 在進行了劍指Offer和LeetCode hot100的毒打之后, 我決心系統(tǒng)地學習一些經(jīng)典算法,增強我的綜合算法能力。 題目鏈接:283. 移動零 - 力扣(Leetcode) 讀完題目大概就能明白他的意思, 就是在不改變其他數(shù)字的情況下

    2024年02月11日
    瀏覽(23)
  • 【算法專題突破】雙指針 - 四數(shù)之和(8)

    【算法專題突破】雙指針 - 四數(shù)之和(8)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:18. 四數(shù)之和 - 力扣(Leetcode) ?這道題跟三數(shù)之和也是一樣的, 題目很好理解,就是四個數(shù)的和等于target的情況, 且這四個數(shù)不能重復。 首先還是暴力解法: 排序 + 暴力枚舉 + set去重 我們當然是用優(yōu)化的解法

    2024年02月09日
    瀏覽(26)
  • 【算法專題突破】雙指針 - 三數(shù)之和(7)

    【算法專題突破】雙指針 - 三數(shù)之和(7)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:15. 三數(shù)之和 - 力扣(Leetcode) ?題目就是要找出和為0的不重復的三元組, 注意三元組的每個元素是得不同的位置,那不重復又是什么意思呢? 我們可以看第一個示例, 他找出了三個三元組,但是他最后只返回

    2024年02月09日
    瀏覽(19)
  • 【算法專題突破】雙指針 - 盛最多水的容器(4)

    【算法專題突破】雙指針 - 盛最多水的容器(4)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:11. 盛最多水的容器 - 力扣(Leetcode)? ?這道題目也不難理解, 兩邊的柱子的盛水量是根據(jù)短的那邊的柱子決定的, 而盛水量就是短的柱子的高度 * 寬度即可。 ?這道題可以用暴力枚舉,兩層for循環(huán),肯定是可

    2024年02月10日
    瀏覽(20)
  • 【算法專題突破】雙指針 - 有效三角形的個數(shù)(5)

    【算法專題突破】雙指針 - 有效三角形的個數(shù)(5)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:611. 有效三角形的個數(shù) - 力扣(Leetcode) ?我們可以根據(jù)示例1來理解這一道題目, 他說數(shù)組里面的數(shù)可以組成三角形三條邊的個數(shù), 那我們先自己枚舉一下所有情況看看: ?【2, 2, 3】 ?【2, 2, 4】 ?【2,

    2024年02月10日
    瀏覽(21)
  • 【LeetCode 算法專題突破】滑動窗口(?)

    【LeetCode 算法專題突破】滑動窗口(?)

    學完了雙指針算法,滑動窗口那肯定是逃不掉了,我個人感覺他倆就不分家,不把滑動窗口的題目好好刷上一刷我都難受 先來一道經(jīng)典的滑動窗口試試水 題目鏈接:209. 長度最小的子數(shù)組 其實滑動窗口題目的解法都大同小異,我們基本上寫幾道題目,就能很好的掌握這個算

    2024年02月07日
    瀏覽(22)
  • 【算法專題突破】滑動窗口 - 長度最小的子數(shù)組(9)

    【算法專題突破】滑動窗口 - 長度最小的子數(shù)組(9)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:209. 長度最小的子數(shù)組 - 力扣(Leetcode) ?要注意的是,題目給的是正整數(shù), 而題目要求并不難理解,就是找最短的子數(shù)組。 如果使用暴力的話,就是一個O(N3)的算法,復雜度很高, 我們可以用滑動窗口來做,

    2024年02月09日
    瀏覽(27)
  • 【算法專題突破】二分查找 - x 的平方根(18)

    【算法專題突破】二分查找 - x 的平方根(18)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:69. x 的平方根 - 力扣(LeetCode) 這道題就是求算數(shù)平方根, 要注意的點是他只需要保留整數(shù)部分,小數(shù)部分會舍去 我們確定好一個區(qū)間 1 ~ x,數(shù)字 x 的算數(shù)平方根一定在這里面, 最簡單的思路就是用暴力解法

    2024年02月07日
    瀏覽(19)
  • 【算法優(yōu)選】雙指針專題——貳

    【算法優(yōu)選】雙指針專題——貳

    常?的雙指針有兩種形式,?種是 對撞指針 ,?種是 左右指針 對撞指針 :?般?于順序結(jié)構(gòu)中,也稱左右指針。 對撞指針從兩端向中間移動。?個指針從最左端開始,另?個從最右端開始,然后逐漸往中間逼近。 對撞指針的終?條件?般是兩個指針相遇或者錯開(也可能

    2024年02月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包