2. Add Two Numbers 大数运算
发布时间:2021-01-20 14:14:35 所属栏目:大数据 来源:网络整理
导读:题目地址 注意长度不等时的情况 class Solution { public : ListNode *addTwoNumbers(ListNode *l1,ListNode *l2) { vector int v1,v2,v3; while (l1 != NULL) { v1.push_back(l1-val); l1 = l1-next; } while (l2 != NULL) { v2.push_back(l2-val); l2 = l2
题目地址 注意长度不等时的情况 class Solution { public: ListNode *addTwoNumbers(ListNode *l1,ListNode *l2) { vector<int> v1,v2,v3; while (l1 != NULL) { v1.push_back(l1->val); l1 = l1->next; } while (l2 != NULL) { v2.push_back(l2->val); l2 = l2->next; } int i = 0,j = 0,k = 0; int carry = 0; while (i < v1.size() && j < v2.size()) { int now = (v1[i] + v2[j] + carry) % 10; carry = (v1[i] + v2[j] + carry) / 10; v3.push_back(now); i++; j++; } if (carry) { if (i < v1.size()) { while (i < v1.size()) { int now = (v1[i] + carry) % 10; carry = (v1[i] + carry) / 10; v3.push_back(now); i++; } } else if (j < v2.size()) { while (j < v2.size()) { int now = (v2[j] + carry) % 10; carry = (v2[j] + carry) / 10; v3.push_back(now); j++; } } if (carry) v3.push_back(carry); } else { while (i < v1.size()) v3.push_back(v1[i++]); while (j < v2.size()) v3.push_back(v2[j++]); } ListNode *p = new ListNode(v3[0]); ListNode *ans = p; for (int k = 1; k < v3.size(); ++k) { ListNode *temp = new ListNode(v3[k]); p->next = temp; p = temp; } return ans; } }; (编辑:ASP站长) 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
未处理完善
-
无相关信息
最新更新