From c2148ddddb9688fddf360bd0266636f9bc06c72d Mon Sep 17 00:00:00 2001 From: Linsen Wu Date: Sat, 19 Mar 2016 10:16:05 -0500 Subject: [PATCH] add solution for 066 plus one --- C++/066_Plus_One.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 C++/066_Plus_One.cpp diff --git a/C++/066_Plus_One.cpp b/C++/066_Plus_One.cpp new file mode 100644 index 00000000..ef7893d3 --- /dev/null +++ b/C++/066_Plus_One.cpp @@ -0,0 +1,48 @@ +//66. Plus 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. + * + *Tag: Array, Math + * + *Author: Linsen Wu + */ + +#include "stdafx.h" +#include "iostream" +#include +#include + +using namespace std; + +class Solution { +public: + vector plusOne(vector& digits) { + int n = digits.size(); + vector result (digits.size(),0); + + int sum = 0; + int carry = 1; + + for (int i = n - 1; i >=0; i--) + { + sum = carry + digits[i]; + carry = sum/10; + result[i] = sum%10; + } + + if (carry > 0) + { + result.insert(result.begin(), carry); + } + + return result; + } +}; + +int _tmain(int argc, _TCHAR* argv[]) +{ + return 0; +} +