diff --git a/problems/0152_Maximum_Product_Subarray/Jackis.cpp b/problems/0152_Maximum_Product_Subarray/Jackis.cpp new file mode 100644 index 00000000..a392001c --- /dev/null +++ b/problems/0152_Maximum_Product_Subarray/Jackis.cpp @@ -0,0 +1,83 @@ +//1 +class Solution { +public: + int maxProduct(vector& nums) { + //dp Solution + int n = nums.size(); + vector f(n); //max + vector g(n); //min + int res; + res = f[0] = g[0] = nums[0]; + for(int i=1; i res) + res = f[i]; + } + return res; + } +}; + +//2 +class Solution { +public: + int maxProduct(vector& nums) { + //dp Solution + int res=nums[0], mx=res, mn=res; + for(int i=1; i 0) + { + mx = max(mx*nums[i], nums[i]); + mn = min(mn*nums[i], nums[i]); + } + else + { + int tmp = mx; + mx = max(mn*nums[i], nums[i]); + mn = min(tmp*nums[i], nums[i]); + } + res = max(res, mx); + } + return res; + } +}; +//3 +class Solution { +public: + int maxProduct(vector& nums) { + //dp Solution + int res=nums[0], mx=res, mn=res; + for(int i=1; i& nums) { + int res=nums[0], prod=1, n=nums.size(); + for(int i=0; i=0; i--) + { + res = max(res, prod*=nums[i]); + if(nums[i] == 0) + prod = 1; + } + return res; + } +}; \ No newline at end of file diff --git a/problems/0973_K_Closest_Points_to_Origin/Jackis.c b/problems/0973_K_Closest_Points_to_Origin/Jackis.c new file mode 100644 index 00000000..cb661696 --- /dev/null +++ b/problems/0973_K_Closest_Points_to_Origin/Jackis.c @@ -0,0 +1,54 @@ +/* +基于选择排序的方法,但该方法提交时显示超时 +*/ + +class Solution { +public: + vector> kClosest(vector>& points, int K) { + vector> res; + SelectSort(points, res, K); + return res; + } + double Distance(vector n) + { + return (double)n[0]*n[0] + (double)n[1]*n[1]; + } + void SelectSort(vector>& num, vector>& res, int K) + { + double min; + int min_pos; + int i, j; + for(i=0; i> kClosest(vector>& points, int K) { + sort(begin(points), end(points), [this](auto& f, auto& s) + { + return (f[0]*f[0] + f[1]*f[1] < s[0]*s[0] + s[1]*s[1]); + }); + + points.erase(begin(points) + K, end(points)); + return points; + } +}; diff --git a/submittors/Jackis-1.txt b/submittors/Jackis-1.txt new file mode 100644 index 00000000..df485dbc --- /dev/null +++ b/submittors/Jackis-1.txt @@ -0,0 +1 @@ +This is diff --git a/submittors/Jackis-2.txt b/submittors/Jackis-2.txt new file mode 100644 index 00000000..e69de29b