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

每日一題——兩數(shù)之和(返回下標和返回數(shù)值兩種情況)

這篇具有很好參考價值的文章主要介紹了每日一題——兩數(shù)之和(返回下標和返回數(shù)值兩種情況)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

每日一題

兩數(shù)之和

題目鏈接

每日一題——兩數(shù)之和(返回下標和返回數(shù)值兩種情況)

思路

注:本題只采用暴力解法,時間復雜度為O(n2),如果采用哈希表,可以將時間復雜度降到O(n),但由于筆者還未對哈希表展開學習,故不做討論

  • 我們直接用兩層for循環(huán)來解決問題

  • 第一層for循環(huán)用來遍歷整個數(shù)組,第二層for循環(huán)用來判斷遍歷的兩個數(shù)的和是否等于target

    for(int i = 0; i < numsSize - 1; i++)
        {
            for(int j = i + 1; j < numsSize; j++)
            {
                if(nums[i] + nums[j] == target)
                {
                    ……………………;
                }
            }
        }
    

實現(xiàn)代碼

int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    //確定返回數(shù)組的大小
    *returnSize = 2;
    //申請的返回數(shù)組
    int *res = (int *)malloc(sizeof(int) * 2);
    //尋找滿足條件的兩個數(shù)
    for(int i = 0; i < numsSize - 1; i++)
    {
        for(int j = i + 1; j < numsSize; j++)
        {
            if(nums[i] + nums[j] == target)
            {
                res[0] = i;
                res[1] = j;
            }
        }
    }
    //返回這兩個數(shù)的下標
    return res;
}

拓展

  • 這道題要求返回的是滿足條件的兩個數(shù)的下標,但如果將題目要求改為返回這兩個數(shù)的值呢?
思路
  • 當然我們同樣可以上面的暴力解法來解決問題,但有沒有效率更高的方法呢?

  • 我們可以采用雙指針的方法

  • 首先我們假設題目給的數(shù)組是一個有序數(shù)組,那題解過程如圖所示:

    每日一題——兩數(shù)之和(返回下標和返回數(shù)值兩種情況)

  • 由此可見,要使用雙指針的方法,就一定要確保數(shù)組是有序的(只有這樣,才能保證i右移后,nums[i] + nums[j]會變大,j左移后,nums[i] + nums[j]會變小),因此,我們最開始就要用排序算法來使數(shù)組nuns有序。文章來源地址http://www.zghlxwxcb.cn/news/detail-467337.html

實現(xiàn)代碼
void Sort(int *nums, int numsSize)
{
    for(int i = 0; i < numsSize - 1; i++)
    {
        for(int j = i + 1; j < numsSize; j++)
        {
            if(nums[i] > nums[j])
            {
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
    }
}
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    int *res = (int *)malloc(sizeof(int) * 2);
    *returnSize = 2;
    //排序
    Sort(nums,numsSize);
    //從數(shù)組的頭和尾對數(shù)組進行遍歷
    int i = 0, j = numsSize - 1;
    //找到符合條件的兩個數(shù)
    while(i < j)
    {
        if(nums[i] + nums[j] > target)
            j--;
        else if(nums[i] + nums[j] < target)
            i++;
        else
        {
            res[0] = nums[i];
            res[1] = nums[j];
            break;
        }
    }
    //返回數(shù)組
    return res;
}

到了這里,關于每日一題——兩數(shù)之和(返回下標和返回數(shù)值兩種情況)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

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

相關文章

  • 每日一練:前端js實現(xiàn)算法之兩數(shù)之和

    方法一:暴力法 方法二:哈希表 方法一 :使用暴力法,通過兩層循環(huán)遍歷數(shù)組來查找符合條件的兩個數(shù)。 方法二 :使用哈希表,通過一次遍歷數(shù)組,將每個數(shù)的值和索引存儲在哈希表中,同時查找是否存在符合條件的數(shù)。 暴力法的時間復雜度為 O(n^2) ,空間復雜度為 O(1

    2024年02月21日
    瀏覽(21)
  • 【每日一題】2. 兩數(shù)相加

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

    給你兩個 非空 的鏈表,表示兩個非負的整數(shù)。它們每位數(shù)字都是按照 逆序 的方式存儲的,并且每個節(jié)點只能存儲 一位 數(shù)字。 請你將兩個數(shù)相加,并以相同形式返回一個表示和的鏈表。 你可以假設除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。 示例 1: 示例 2: 示例 3: 提

    2024年02月11日
    瀏覽(26)
  • 【C語言】每日一題(尋找數(shù)組的中心下標)

    【C語言】每日一題(尋找數(shù)組的中心下標)

    尋找數(shù)組的中心下標,鏈接奉上 ???????思路: 依舊是我們的老朋友,暴力循環(huán)。 1.可以利用外層for循環(huán),循環(huán)變量為數(shù)組下標,在循環(huán)內分別求出下標左邊與右邊的sum 2.在邊界時討論, 當下標為左邊界(nums[0])時,left sum=0;當下標為右邊界(nums[numsSize-1)時,r

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

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

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

    2024年02月11日
    瀏覽(23)
  • 【Leetcode每日一題】35.搜素插入位置|二分查找數(shù)組下標

    【Leetcode每日一題】35.搜素插入位置|二分查找數(shù)組下標

    ??博主簡介:大一計科生,努力學習Java中!熱愛寫博客~預備程序媛 ??所屬專欄:LeetCode每日一題–進擊大廠 ?往期博文回顧: 【JavaSE】保姆級教程|1萬字+10張圖學會類與對象–建議收藏 ????♂?近期目標:成為千粉小博主。 ??“再牛的程序員也是從小白開始,既然開始

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

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

    2024年02月11日
    瀏覽(21)
  • 每日一題——三數(shù)之和(雙指針)

    每日一題——三數(shù)之和(雙指針)

    題目鏈接 思路 解析函數(shù)原型 首先我們來看一下題目給的函數(shù)原型: 題目要求我們 返回一個二維數(shù)組,數(shù)組的行數(shù)代表著存在多少個滿足條件的三元組,而在本題中,列數(shù)規(guī)定為3,即每行存儲3個元素 在螺旋矩陣中我們已經做過分析, nums就是題目給的整數(shù)數(shù)組,numsSize就是

    2024年02月07日
    瀏覽(23)
  • 每日一題之數(shù)值的整數(shù)次方

    每日一題之數(shù)值的整數(shù)次方

    描述: 實現(xiàn)函數(shù) double Power(double base, int exponent),求 base 的 exponent 次方。 注意: 1.保證base和exponent不同時為0。 2.不得使用庫函數(shù),同時不需要考慮大數(shù)問題 3.有特殊判題,不用考慮小數(shù)點后面0的位數(shù)。 我的思路:直接使用遞歸,讓它每次乘一個它自身。但這存在一個問題,

    2024年02月12日
    瀏覽(20)
  • 2023-07-15 LeetCode每日一題(四數(shù)之和)

    點擊跳轉到題目位置 給你一個由 n 個整數(shù)組成的數(shù)組 nums ,和一個目標值 target 。請你找出并返回滿足下述全部條件且 不重復 的四元組 [nums[a], nums[b], nums[c], nums[d]] (若兩個四元組元素一一對應,則認為兩個四元組重復): 0 = a, b, c, d n a、b、c 和 d 互不相同 nums[a] + nums[b]

    2024年02月16日
    瀏覽(26)
  • 【力扣每日一題】2023.7.15 四數(shù)之和

    【力扣每日一題】2023.7.15 四數(shù)之和

    這題和本月出過的每日一題:兩數(shù)之和,三數(shù)之和類似。 不夸張的說只要把三數(shù)之和的代碼拿來再套層for循環(huán)改改就可以了。 不過我這里還是簡單捋一捋思路,題目給一個數(shù)組,要求返回所有長度為4,總和為 target 的子數(shù)組(不用連續(xù))。 比較容易想到的是暴力解法,直接

    2024年02月16日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包