LeetCode第1題: two-sum(C語言)

1、基礎方法
思路:雙層遍歷數(shù)組,如果找到目標的target芳悲,退出雙層循環(huán)

int* twoSum(int* nums, int numsSize, int target, int* returnSize){

    int *result = (int *)malloc(2 * sizeof(int));

    bool found = false;

    for(int i = 0; i < numsSize - 1; i++){

        if(!found){

            for(int j = i + 1; j < numsSize; j++){

                if(nums[i] + nums[j] == target){

                    result[0] = i;

                    result[1] = j;

                    found = true;

                    break;

                }

            }           

        }

    }

    if(found){

        *returnSize = 2;

    }

    else{

        *returnSize = 0;

    }

    return result;

}

2枪芒、字典方法
思路:
1、首先遍歷數(shù)組確定nums的最大值max和最小值min挺庞;
2晰赞、創(chuàng)建字典map數(shù)組,用于快速定位目標值在nums數(shù)組中的索引 选侨。map數(shù)組以數(shù)組下標為要找的目標元素掖鱼,下標對應的值為該下標在nums數(shù)組中的下標位置,例如map[3] = 5援制,即在數(shù)組nums中戏挡,元素3在nums中的下標為5。數(shù)組大小為max - min + 1晨仑,目的是為了將max - min + 1 區(qū)間所有元素存入map褐墅,由于nums并不是從min-max連續(xù)的,所以map會有許多為空元素寻歧。為了防止map數(shù)組初始化的時候數(shù)組元素隨機賦值掌栅,需要用到calloc函數(shù),將map的元素值均初始化為0码泛。
3猾封、遍歷nums數(shù)組,對于每一個數(shù)組元素nums[i]噪珊,如果map中存在lookfornum = target - nums[i]晌缘,則直接返回齐莲,如果不存在,則建立數(shù)組元素的地址映射磷箕,map[nums[i] - min] = i + 1(其中选酗,索引存為i + 1,而不是存為i本身岳枷,原因為當遍歷到數(shù)組最小值時芒填,即nums[i] - min = 0時,無法區(qū)分該索引到底是min在原nums數(shù)組中下標就是0空繁,還是因為map數(shù)組在calloc 函數(shù)初始化的時候為0)殿衰。

int* twoSum(int* nums, int numsSize, int target, int* returnSize){

    int i, max, min;

    max = min = nums[0];

    for(i = 0; i < numsSize; i++) {

        if(nums[i] > max) max = nums[i];

        if(nums[i] < min) min = nums[i];

    }

    int *map  = (int *)calloc((max - min + 1), sizeof(int));

    int *result = (int *)malloc(2 * sizeof(int));

    bool found = false;

    for(i = 0; i < numsSize; i++) {

        int lookfornum = target - nums[i];

        if(lookfornum < min || lookfornum > max) continue;

        int dis = lookfornum - min;

        if (map[dis]) {       

            result[0] = i;

            result[1] = map[dis] - 1;

            found = true;

            break;

        }

        else{

            map[nums[i] - min] = i + 1;

        }

    }

    if(found)

        *returnSize = 2;

    else

        *returnSize= 0;

    return result;

}

本系列文章,旨在打造LeetCode題目解題方法盛泡,幫助和引導同學們開闊學習算法思路闷祥,由于個人能力和精力的局限性,也會參考其他網(wǎng)站的代碼和思路傲诵,如有侵權凯砍,請聯(lián)系本人刪除。

下一題:LeetCode第2題:add-two-numbers(C語言)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末拴竹,一起剝皮案震驚了整個濱河市悟衩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殖熟,老刑警劉巖局待,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異菱属,居然都是意外死亡钳榨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門纽门,熙熙樓的掌柜王于貴愁眉苦臉地迎上來薛耻,“玉大人,你說我怎么就攤上這事赏陵”荩” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵蝙搔,是天一觀的道長缕溉。 經常有香客問我,道長吃型,這世上最難降的妖魔是什么证鸥? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上枉层,老公的妹妹穿的比我還像新娘泉褐。我一直安慰自己,他們只是感情好鸟蜡,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布膜赃。 她就那樣靜靜地躺著,像睡著了一般揉忘。 火紅的嫁衣襯著肌膚如雪跳座。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天癌淮,我揣著相機與錄音躺坟,去河邊找鬼。 笑死乳蓄,一個胖子當著我的面吹牛,可吹牛的內容都是我干的夕膀。 我是一名探鬼主播虚倒,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼产舞!你這毒婦竟也來了魂奥?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤易猫,失蹤者是張志新(化名)和其女友劉穎耻煤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體准颓,經...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡哈蝇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了攘已。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炮赦。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖样勃,靈堂內的尸體忽然破棺而出吠勘,到底是詐尸還是另有隱情,我是刑警寧澤峡眶,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布剧防,位于F島的核電站,受9級特大地震影響辫樱,放射性物質發(fā)生泄漏峭拘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棚唆。 院中可真熱鬧暇赤,春花似錦、人聲如沸宵凌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞎惫。三九已至溜腐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓜喇,已是汗流浹背挺益。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乘寒,地道東北人望众。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像伞辛,于是被迫代替她去往敵國和親烂翰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內容