Two Sum
2017-11-29 15:07:16 Mashirolee 阅读数 59

Two Sum

sysu 15331160 李仁杰


此题难度easy,利用两次循环可得,下面贴上代码:

class Solution{
public:
vector<int> twoSum(vector<int> & nums,int target){
int s = nums.length;
for(int i=0;i<s;i++)
{
for(int j=i+1;j<s;j++){
if(nums[i] + nums[j] == target)
cout<<"["<<i<<","<<j<<"]"<<endl;
}
}
}
};




2017-11-29 16:10:11 Mashirolee 阅读数 58

Add Two Numbers

sysu 15331160 李仁杰


这道题难度中:
题目意思大概可以理解为倒叙的带进位十进制加法。
两个字串相加分为三种情况:
第一个比第二个长
第一个和第二个一样长
第一个比第二个短

其中设置一个carry 和sum,然后利用循环即可得解
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    ListNode dummyHead = new ListNode(0);
    ListNode p = l1, q = l2, curr = dummyHead;
    int carry = 0;
    while (p != null || q != null) {
        int x = (p != null) ? p.val : 0;
        int y = (q != null) ? q.val : 0;
        int sum = carry + x + y;
        carry = sum / 10;
        curr.next = new ListNode(sum % 10);
        curr = curr.next;
        if (p != null) p = p.next;
        if (q != null) q = q.next;
    }
    if (carry > 0) {
        curr.next = new ListNode(carry);
    }
    return dummyHead.next;
}



没有更多推荐了,返回首页