2. Add Two Numbers

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

 

/**
 * 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) {
        int sum = 0;
        ListNode a(0);
        ListNode* NODE = &a;
        while(l1 || l2 || sum){
            if(l1){
                sum += l1->val;
                l1 = l1->next;
            }
            if(l2){
                sum += l2->val;
                l2 = l2->next;
            }
            NODE->next = new ListNode(sum % 10);
            NODE = NODE->next;
            sum /= 10;
        }
        return a.next;
    }
};
View Code

 

 3. Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters.

 

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

 

c++:

暴力O(N2):Your runtime beats 24.22% of cpp submissions.

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
    int repeat[300], max = -1, temp = 0;
    int len = s.size();
    if(len == 0) return 0;
        for(int i = 0; i < len; i++){
            temp = 0;
            for(int j = 0; j < 200; j++) repeat[j] = 0;
            for(int k = i; k < len; k++){
                int l = s[k] - ' ';
                //cout<< " l " << l << endl;
                if(repeat[l] >= 1) break;
                if(repeat[l] == 0) {temp++;repeat[l]++;}
            }
            //cout<< temp <<endl;
            if(temp >= max) max = temp;
        }
        return max;
    }
};
View Code

相关文章: