commit 759c5b09ce5d01c45156a710cfce0cd254d597a3 Author: carry Date: Sat Dec 28 18:47:03 2024 +0800 字符串转换完成 三数之和待优化 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b19fc33 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +#仅保留代码文件 +* +!.gitignore +!*.java +!*.py +!*.cpp +!*.c +!*.go +!*.js \ No newline at end of file diff --git a/myAtoi.cpp b/myAtoi.cpp new file mode 100644 index 0000000..4401883 --- /dev/null +++ b/myAtoi.cpp @@ -0,0 +1,57 @@ +#include +#include +#include +#include + +using namespace std; + +string test = "-91283472332"; + +class Solution +{ +public: + int myAtoi(string s) + { + auto i = s.begin(); + long long toReturn = 0; + while (*i == ' ') { + i++; + } + auto head = i; + i++; + while ((('0' <= *i) and (*i <= '9'))) { + i++; + } + auto end = i++; + i = head; + if ((('0' <= *i) and (*i <= '9')) or (*i == '-')) { + while ('0' <= *i <= '9') { + i++; + if (i == end) { + break; + } + } + i--; + long long carry = 0; + while (i != head) { + toReturn += pow(10, carry) * ((*i) - 48); + i--; + carry++; + } + if (*i == '-') { + return -toReturn; + } else { + return toReturn + pow(10, carry) * ((*i) - 48); + } + } else { + return 0; + } + } +}; + +int main() +{ + Solution s; + cout << s.myAtoi(test) << endl; + return 0; +} \ No newline at end of file diff --git a/threeSum.cpp b/threeSum.cpp new file mode 100644 index 0000000..62070d8 --- /dev/null +++ b/threeSum.cpp @@ -0,0 +1,45 @@ +#include +#include +#include +#include +using namespace std; + +class Solution +{ +public: + vector> threeSum(vector &nums) + { + + sort(nums.begin(), nums.end()); + set> res; + + for(int i = 0; i < nums.size(); i++) { + for(int j = i + 1; j < nums.size(); j++) { + for(int k = nums.size() - 1; k > j ; k--) { + if(nums[i] + nums[j] + nums[k] == 0) { + vector tmp = {nums[i], nums[j], nums[k]}; + res.insert(tmp); + } + + } + } + } + + return vector>(res.begin(), res.end()); + } +}; + +int main() +{ + Solution s; + vector nums = {-1, 0, 1, 2, -1, -4}; + vector> res = s.threeSum(nums); + for(auto &v : res) { + for(auto &i : v) { + cout << i << " "; + } + cout << endl; + } + + return 0; +} \ No newline at end of file