LeetCode【1--两数之和】 LeetCode【2--两数相加】
生活随笔
收集整理的這篇文章主要介紹了
LeetCode【1--两数之和】 LeetCode【2--两数相加】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
兩數(shù)之和
題目描述
給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的那 兩個(gè) 整數(shù),并返回他們的數(shù)組下標(biāo)。
你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。
解題思路
直接兩重循環(huán)遍歷,無腦
代碼實(shí)現(xiàn)
class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {vector<int>res;for(int i = 0; i<nums.size();++i){for(int j = i+1;j<nums.size();++j){if(nums[i]+nums[j] == target){res.push_back(i);res.push_back(j);}}}return res;} };兩數(shù)相加
題目描述
給出兩個(gè) 非空 的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。
如果,我們將這兩個(gè)數(shù)相加起來,則會(huì)返回一個(gè)新的鏈表來表示它們的和。
您可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。
解題思路
輸出結(jié)果是鏈表的逆序,所以只需要把兩個(gè)鏈表每位上的數(shù)字相加為新鏈表的一個(gè)結(jié)點(diǎn),不斷的掛鏈即可。
代碼實(shí)現(xiàn)
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode* newHead = new ListNode(-1); //新鏈表ListNode* Cur = newHead;int sum = 0; //每一位上面的和bool carry = false; //進(jìn)位標(biāo)志while(l1!=NULL || l2!=NULL){sum = 0;if(l1!=NULL){sum+=l1->val;l1=l1->next;}if(l2!=NULL){sum+=l2->val;l2= l2->next;}if(carry){sum+=1;}Cur -> next = new ListNode(sum%10);carry = sum>=10? true:false;Cur = Cur->next;}if(carry){Cur->next = new ListNode(1);}//沒有頭節(jié)點(diǎn),返回頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)return newHead->next;} }; 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的LeetCode【1--两数之和】 LeetCode【2--两数相加】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【剑指offer】_19 滑动窗口中的最
- 下一篇: LeetCode【3--无重复的最长字串