leetcode 21_Merge Two Sorted Lists & leetcode_258 Add Digits & leetcode_66plus one
来源:互联网 发布:淘宝怎么看旺旺号 编辑:程序博客网 时间:2024/05/29 16:20
l leetcode 21_Merge Two Sorted Lists
题目:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
解法:
#include <iostream>using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}}; class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {if(l1 == NULL)return l2;if(l2 == NULL)return l1;ListNode *head = new ListNode(0);ListNode *p = head;while (l1 != NULL && l2 != NULL){if (l1->val < l2->val){ListNode *temp = new ListNode(l1->val);p->next = temp;p = temp;l1 = l1->next;}else{ListNode *temp = new ListNode(l2->val);p->next = temp;p = temp;l2 = l2->next;}} while (l1 != NULL) {ListNode *temp = new ListNode(l1->val);p->next = temp;p = temp;l1 = l1->next; }while (l2 != NULL){ListNode *temp = new ListNode(l2->val);p->next = temp;p = temp;l2 = l2->next;}return head->next; }};
leetcode_258 Add Digits.cpp
题目:
Given a non-negative integer num
, repeatedly add all its digits until the result has only one digit.
For example:
Given num = 38
, the process is like: 3 + 8 = 11
, 1 + 1 = 2
. Since 2
has only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
答案:
#include <iostream>using namespace std;class Solution {public:int addDigits(int num) {if(num < 10)return num;int tmp = 0;while(num >= 10){tmp += num % 10;num = num / 10;if (num < 10 ){tmp += num;num = tmp;if (num < 10)return tmp;elsetmp = 0;}}}};
leetcode_66plus one
题目:
Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
解法:
#include <iostream>#include <vector>using namespace std;class Solution {public:vector<int> plusOne(vector<int>& digits) {int length = digits.size();int carry;if (digits[length - 1] == 9)carry = 1;else{digits[length - 1] += 1;return digits;}for (int i = length - 1; i > 0; --i){digits[i] += carry;if (digits[i] == 10){digits[i] = digits[i] - 10;carry = 1;}elsereturn digits;}digits[0] += carry;if(digits[0] == 10){digits[0] -= 10;digits.insert(digits.begin(), 1);}return digits;}};
0 0
- leetcode 21_Merge Two Sorted Lists & leetcode_258 Add Digits & leetcode_66plus one
- LeetCode 21_Merge Two Sorted Lists
- leetcode第一刷_Merge Two Sorted Lists
- 0021_Merge Two Sorted Lists
- LeetCode_258. Add Digits
- leetcode第一刷_Merge k Sorted Lists
- LeetCode 23_Merge k Sorted Lists
- leetcode 21. Merge Two Sorted Lists Add to List
- 0023_Merge k Sorted Lists
- LeetCode(21)Merge Two Sorted Lists
- [LeetCode 21] Merge Two Sorted Lists Solution
- [leetcode 21] Merge Two Sorted Lists
- LeetCode 21:Merge Two Sorted Lists
- LeetCode | #21 Merge Two Sorted Lists
- [Leetcode] 21 - Merge Two Sorted Lists
- leetcode.21------------Merge Two Sorted Lists
- [leetcode]21 Merge Two Sorted Lists
- Leetcode NO.21 Merge Two Sorted Lists
- C++标准库介绍
- 数据结构-队列1
- 简单 js 验证
- POJ 1000 A+B Problem
- 085 Maximal Rectangle [Leetcode]
- leetcode 21_Merge Two Sorted Lists & leetcode_258 Add Digits & leetcode_66plus one
- hdu1796 How many integers can you find 容斥原理
- GDOI2016模拟8.16总结
- HBase介绍
- UIViewConroller(控制器)间关系
- 蓝桥杯练习:入门训练 Fibonacci数列
- 超详细!iOS 并发编程之 Operation Queues
- 【算法】字符串包含
- new,malloc区别