leetcode-Two Sum、Reverse Integer、Add Two Numbers
two sum问题:
vector<int> twoSum(vector<int> &numbers, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<int> result; for (int i = 0; i < numbers.size(); ++i) { for (int j = i + 1; j < numbers.size(); ++j) { if (target == numbers[i] + numbers[j]) { result.push_back(i + 1); result.push_back(j + 1); } } } return result;
}
Reverse Integer:
int reverse(int x) { int flag = 1; if (x < 0) { flag = -1; } int temp = abs(x); int y = 0; while (temp>=10) { y = (y + (temp % 10)) * 10; temp = temp / 10; } y += (temp % 10); return (y * flag); }
add two numbers:
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { // Start typing your C/C++ solution below // DO NOT write int main() function ListNode* firstNode = new ListNode(l1->val); ListNode* p = firstNode; //copy l1 to new list while (l1->next != NULL) { l1 = l1->next; ListNode* newNode = new ListNode(l1->val); firstNode->next = newNode; firstNode = newNode; } //point to the first node firstNode = p; do { firstNode->val += l2->val; l2 = l2->next; if (l2 != NULL) { if (NULL == firstNode->next) { firstNode->next = new ListNode(0); } if (firstNode->val >= 10) { firstNode->next->val += 1; firstNode->val = firstNode->val % 10; } firstNode = firstNode->next; } }while (l2 != NULL); while (firstNode != NULL) { if (firstNode->val >= 10) { if (firstNode->next != NULL) { firstNode->next->val += 1; } else { firstNode->next = new ListNode(1); } firstNode->val = firstNode->val % 10; } firstNode = firstNode->next; } return p; }

浙公网安备 33010602011771号