43.
#include <iostream> using namespace std; class Solution { public: string multiply(string num1, string num2) { int l1 = num1.size(); int l2 = num2.size(); string res(l1 + l2, '0'); for(int i=l1-1; i>=0; i--) { for(int j=l2-1; j>=0; j--) { int tmp = (res[i+j+1] - '0') + (num1[i] - '0')*(num2[j] - '0'); res[i+j+1] = tmp%10 + '0'; res[i+j] += tmp/10; } } for(int i = 0; i < l1+l2; i++){ if(res[i]!='0') return res.substr(i); } return "0"; } };
46.
class Solution { public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> res; queue<vector<int>>qu; int begin=0,twobegin=0;; for(int i=begin;i<nums.size();i++){ swap(nums[i],nums[begin]); qu.emplace(nums); twobegin=0; while(!qu.empty()){ int sz=qu.size(); twobegin++; while(sz--){ vector<int> temp = qu.front(); if(twobegin==nums.size()) res.emplace_back(temp); qu.pop(); for(int i = twobegin;i<nums.size();i++){ swap(temp[i],temp[twobegin]); qu.emplace(temp); swap(temp[i],temp[twobegin]); } } } swap(nums[i],nums[begin]); } return res; } };
53.
class Solution { public: int maxSubArray(vector<int>& nums) { if(nums.size() == 0) return NULL; int res = INT_MIN; int f_n = -1; for(int i = 0; i < nums.size(); ++i){ f_n = max(nums[i], f_n + nums[i]); res = max(f_n, res); } return res; } };
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45458397/article/details/112760989