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

Leetcode每日一題:167. 兩數(shù)之和 II - 輸入有序數(shù)組(2023.7.8 C++)

這篇具有很好參考價(jià)值的文章主要介紹了Leetcode每日一題:167. 兩數(shù)之和 II - 輸入有序數(shù)組(2023.7.8 C++)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

167.?兩數(shù)之和 II - 輸入有序數(shù)組

題目描述:

實(shí)現(xiàn)代碼與解析:

暴力(超時(shí))

雙指針

原理思路:

二分

原理思路:


167.?兩數(shù)之和 II - 輸入有序數(shù)組

題目描述:

????????給你一個(gè)下標(biāo)從?1?開始的整數(shù)數(shù)組?numbers?,該數(shù)組已按?非遞減順序排列??,請(qǐng)你從數(shù)組中找出滿足相加之和等于目標(biāo)數(shù)?target?的兩個(gè)數(shù)。如果設(shè)這兩個(gè)數(shù)分別是?numbers[index1]?和?numbers[index2]?,則?1 <= index1 < index2 <= numbers.length?。

以長(zhǎng)度為 2 的整數(shù)數(shù)組?[index1, index2]?的形式返回這兩個(gè)整數(shù)的下標(biāo)?index1??index2。

你可以假設(shè)每個(gè)輸入?只對(duì)應(yīng)唯一的答案?,而且你?不可以?重復(fù)使用相同的元素。

你所設(shè)計(jì)的解決方案必須只使用常量級(jí)的額外空間。

示例 1:

輸入:numbers = [2,7,11,15], target = 9
輸出:[1,2]
解釋:2 與 7 之和等于目標(biāo)數(shù) 9 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

示例 2:

輸入:numbers = [2,3,4], target = 6
輸出:[1,3]
解釋:2 與 4 之和等于目標(biāo)數(shù) 6 。因此 index1 = 1, index2 = 3 。返回 [1, 3] 。

示例 3:

輸入:numbers = [-1,0], target = -1
輸出:[1,2]
解釋:-1 與 0 之和等于目標(biāo)數(shù) -1 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。

實(shí)現(xiàn)代碼與解析:

暴力(超時(shí))

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        vector<int> res(2);
        for (int i = 0; i < numbers.size(); i++)
        {
            if (numbers[i] > target / 2 + 1) break;
            for (int j = i + 1; j < numbers.size(); j++)
                {
                    if (numbers[i] + numbers[j] == target)
                    {
                        res[0] = i + 1;
                        res[1] = j + 1;
                    }
                }
        }
        return res;
    }
};

Leetcode每日一題:167. 兩數(shù)之和 II - 輸入有序數(shù)組(2023.7.8 C++),Leetcode,leetcode,c++,算法

?顯然我們沒(méi)有用到有序的這個(gè)性質(zhì)。

雙指針

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        int i = 0, j = numbers.size() - 1;
        while(i < j)
        {
            if (numbers[i] + numbers[j] > target) j--;
            else if (numbers[i] + numbers[j] < target) i++;
            else 
            {
                return {i + 1, j + 1};
            }
        }
        return {};
    }
};

原理思路:

? ? ? ? 根據(jù)有序的性質(zhì),numbers[i] + numbers[j] > target 說(shuō)明和大了,我們固定左端,右端向左移動(dòng)讓和變小。numbers[i] + numbers[j] <?target 說(shuō)明和小了,我們固定右端,左端向右移動(dòng)讓和變大。

二分

class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {

        for (int i = 0; i < numbers.size(); i++)
        {
            int l = i + 1;
            int r = numbers.size() - 1;
            while(l <= r)
            {
                int mid = ((r - l) >> 1) + l;
                if (numbers[mid] > target - numbers[i]) r = mid - 1;
                else if (numbers[mid] < target - numbers[i]) l = mid + 1;
                else return {i + 1, mid + 1};
            }
        }
        return {};
    }
};

原理思路:

? ? ? ? 固定一端,然后二分查找另一段,二分比較簡(jiǎn)單,就不再解釋了。

Leetcode:704. 二分查找(C++)_Cosmoshhhyyy的博客-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-538679.html

到了這里,關(guān)于Leetcode每日一題:167. 兩數(shù)之和 II - 輸入有序數(shù)組(2023.7.8 C++)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [java]兩數(shù)之和 II - 輸入有序數(shù)組

    167. 兩數(shù)之和 II - 輸入有序數(shù)組 – 原題鏈接 題目描述: 給你一個(gè)下標(biāo)從 1 開始的整數(shù)數(shù)組 numbers ,該數(shù)組已按 非遞減順序排列 ,請(qǐng)你從數(shù)組中找出滿足相加之和等于目標(biāo)數(shù) target 的兩個(gè)數(shù)。如果設(shè)這兩個(gè)數(shù)分別是 numbers[index1] 和 numbers[index2] ,則 1 = index1 index2 = numbers.length 。

    2024年02月06日
    瀏覽(14)
  • 【算法】Two Sum II - Input Array Is Sorted 兩數(shù)之和 II - 輸入有序數(shù)組

    給你一個(gè)下標(biāo)從 1 開始的整數(shù)數(shù)組 numbers ,該數(shù)組已按 非遞減順序排列 ,請(qǐng)你從數(shù)組中找出滿足相加之和等于目標(biāo)數(shù) target 的兩個(gè)數(shù)。如果設(shè)這兩個(gè)數(shù)分別是 numbers[index1] 和 numbers[index2] ,則 1 = index1 index2 = numbers.length 。 以長(zhǎng)度為 2 的整數(shù)數(shù)組 [index1, index2] 的形式返回這兩個(gè)

    2024年02月13日
    瀏覽(28)
  • 2023/07/01_leetcode每日一題_1. 兩數(shù)之和

    給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)整數(shù)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出 和為目標(biāo)值 target 的那 兩個(gè) 整數(shù),并返回它們的數(shù)組下標(biāo)。 你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,數(shù)組中同一個(gè)元素在答案里不能重復(fù)出現(xiàn)。 你可以按任意順序返回答案。 一開始審錯(cuò)題了,還以

    2024年02月12日
    瀏覽(24)
  • 【力扣每日一題01】?jī)蓴?shù)之和

    開了一個(gè)新專欄,用來(lái)記錄自己每天刷題,并且也是為了養(yǎng)成每日學(xué)習(xí)這個(gè)習(xí)慣,期待堅(jiān)持一年后的自己! 給定一個(gè)整數(shù)數(shù)組? nums ?和一個(gè)整數(shù)目標(biāo)值? target ,請(qǐng)你在該數(shù)組中找出? 和為目標(biāo)值? target ? 的那? 兩個(gè) ?整數(shù),并返回它們的數(shù)組下標(biāo)。 你可以假設(shè)每種輸入只

    2024年02月10日
    瀏覽(18)
  • 【每日一題】445. 兩數(shù)相加 II

    【每日一題】445. 兩數(shù)相加 II

    給你兩個(gè) 非空 鏈表來(lái)代表兩個(gè)非負(fù)整數(shù)。數(shù)字最高位位于鏈表開始位置。它們的每個(gè)節(jié)點(diǎn)只存儲(chǔ)一位數(shù)字。將這兩數(shù)相加會(huì)返回一個(gè)新的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)字都不會(huì)以零開頭。 示例1: 示例2: 示例3: 提示: 鏈表的長(zhǎng)度范圍為 [1, 100] 0 = node.val

    2024年02月11日
    瀏覽(22)
  • 每日一題——兩數(shù)之和(返回下標(biāo)和返回?cái)?shù)值兩種情況)

    每日一題——兩數(shù)之和(返回下標(biāo)和返回?cái)?shù)值兩種情況)

    題目鏈接 思路 注:本題只采用暴力解法,時(shí)間復(fù)雜度為O(n 2 ),如果采用哈希表,可以將時(shí)間復(fù)雜度降到O(n),但由于筆者還未對(duì)哈希表展開學(xué)習(xí),故不做討論 我們直接用兩層for循環(huán)來(lái)解決問(wèn)題 第一層for循環(huán)用來(lái)遍歷整個(gè)數(shù)組,第二層for循環(huán)用來(lái)判斷遍歷的兩個(gè)數(shù)的和是否等

    2024年02月07日
    瀏覽(21)
  • 【LeetCode】每日一題&&兩數(shù)之和&&尋找正序數(shù)組的中位數(shù)&&找出字符串中第一個(gè)匹配項(xiàng)的下標(biāo)&&在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    【LeetCode】每日一題&&兩數(shù)之和&&尋找正序數(shù)組的中位數(shù)&&找出字符串中第一個(gè)匹配項(xiàng)的下標(biāo)&&在排序數(shù)組中查找元素的第一個(gè)和最后一個(gè)位置

    ========================================================================= 主頁(yè)點(diǎn)擊直達(dá): 個(gè)人主頁(yè) 我的小倉(cāng)庫(kù): 代碼倉(cāng)庫(kù) C語(yǔ)言偷著笑: C語(yǔ)言專欄 數(shù)據(jù)結(jié)構(gòu)挨打小記: 初階數(shù)據(jù)結(jié)構(gòu)專欄 Linux被操作記: Linux專欄 LeetCode刷題掉發(fā)記: LeetCode刷題 算法: 算法專欄? C++頭疼記: C++專欄 計(jì)算機(jī)

    2024年02月08日
    瀏覽(36)
  • Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

    Leetcode每日一題——“合并兩個(gè)有序數(shù)組”

    各位CSDN的uu們你們好呀,又到小雅蘭的愉快題解時(shí)候啦,今天,我們的題目?jī)?nèi)容是合并兩個(gè)有序數(shù)組,下面,讓我們進(jìn)入合并兩個(gè)有序數(shù)組的世界吧 示例 1: 輸入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 輸出:[1,2,2,3,5,6] 解釋:需要合并 [1,2,3] 和 [2,5,6] 。 合并結(jié)果是 [ 1,2

    2023年04月24日
    瀏覽(37)
  • 2023/07/02_leetcode每日一題_2.兩數(shù)相加

    給你兩個(gè) 非空 的鏈表,表示兩個(gè)非負(fù)的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲(chǔ)的,并且每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。 請(qǐng)你將兩個(gè)數(shù)相加,并以相同形式返回一個(gè)表示和的鏈表。 你可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。 示例: 輸入:l1 = [9,9,9,9,9,9

    2024年02月11日
    瀏覽(21)
  • LeetCode每日一題【977. 有序數(shù)組的平方】

    LeetCode每日一題【977. 有序數(shù)組的平方】

    題目: 思路: 直接每個(gè)元素平方,然后排序,比較簡(jiǎn)單 雙指針,一頭一尾,每次比較頭指針元素平方與尾指針元素平方的大小,若頭指針的元素平方比較大,則頭指針往后移動(dòng),否則尾指針往前移動(dòng)

    2024年02月20日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包