| class Solution { |
| public: |
| int largestInteger(int num) { |
| vector<int> v; |
| int t = 0; |
| while(num){ |
| v.push_back(num % 10); |
| num /= 10; |
| t ++; |
| } |
| reverse(v.begin(), v.end()); |
| |
| for(int i = 0; i < v.size() - 1; i ++){ |
| for(int j = i + 1; j < v.size(); j ++){ |
| if(v[i] % 2 == v[j] % 2){ |
| if(v[i] < v[j]) swap(v[i], v[j]); |
| } |
| } |
| } |
| reverse(v.begin(), v.end()); |
| |
| int ans = 0; |
| long long q = 1; |
| for(auto x : v){ |
| ans += x * q; |
| q *= 10; |
| } |
| |
| return ans; |
| } |
| }; |
| typedef long long LL; |
| class Solution { |
| public: |
| string minimizeResult(string expression) { |
| int n = expression.size(); |
| vector<int> v; |
| string ans; |
| int p = 0; |
| for(int i = 0; i < n; i ++){ |
| if(expression[i] == '+'){ |
| v.push_back(0); |
| p = i; |
| }else v.push_back(expression[i] - '0'); |
| } |
| |
| vector<LL> ep; |
| LL t = 1; |
| for(int i = 0; i < 10; i ++){ |
| ep.push_back(t); |
| t *= 10; |
| } |
| |
| LL res = 1e18; |
| int p1 = 0, p2 = 0; |
| for(int l = 0; l < p; l ++){ |
| for(int r = p + 1; r < n; r ++){ |
| LL el = 0, em1 = 0, em2 = 0, em = 0, er = 0; |
| for(int i = l - 1, j = 0; i >= 0; i --, j ++){ |
| el += v[i] * ep[j]; |
| } |
| for(int i = p - 1, j = 0; i >= l; i --, j ++){ |
| em1 += v[i] * ep[j]; |
| } |
| for(int i = r, j = 0; i >= p + 1; i --, j ++){ |
| em2 += v[i] * ep[j]; |
| } |
| em = em1 + em2; |
| for(int i = n - 1, j = 0; i > r; i --, j ++){ |
| er += v[i] * ep[j]; |
| } |
| if(!er) er = 1; |
| if(!el) el = 1; |
| |
| LL t = el * em * er; |
| if(t < res){ |
| res = t; |
| p1 = l, p2 = r; |
| } |
| res = min(t, res); |
| } |
| } |
| |
| |
| |
| for(int i = 0; i < n; i ++){ |
| if(i == p1) ans += '('; |
| ans += expression[i]; |
| if(i == p2) ans += ')'; |
| } |
| return ans; |
| } |
| }; |
| |
| typedef long long LL; |
| const int mod = 1e9 + 7; |
| |
| class Solution { |
| public: |
| int maximumProduct(vector<int>& nums, int k) { |
| LL ans = 1; |
| int n = nums.size(); |
| sort(nums.begin(), nums.end()); |
| |
| int l = 0, r = 0; |
| while(r < n && nums[r] == nums[l]) r ++; |
| r --; |
| while(k){ |
| for(int i = l; i <= r; i ++){ |
| if(k){ |
| nums[i] ++; |
| k --; |
| } |
| } |
| if(!k) continue; |
| while(r < n && nums[r] == nums[l]) r ++; |
| r --; |
| } |
| for(auto x : nums){ |
| ans = ans * (LL)x % mod; |
| } |
| |
| return ans; |
| } |
| }; |
| |
| typedef long long LL; |
| class Solution { |
| public: |
| long long maximumBeauty(vector<int>& flowers, long long newFlowers, int target, int full, int partial) { |
| sort(flowers.begin(), flowers.end()); |
| LL n = flowers.size(); |
| if(flowers[0] >= target) return (LL)n * full; |
| |
| LL leftFlowers = newFlowers - n * target; |
| for(int i = 0; i < n; i ++){ |
| flowers[i] = min(flowers[i], target); |
| leftFlowers += flowers[i]; |
| } |
| |
| LL ans = 0, sumFlowers = 0; |
| for(int i = 0, j = 0; i <= n; i ++){ |
| if(leftFlowers >= 0){ |
| |
| while(j < i && (LL)flowers[j] * j - sumFlowers <= leftFlowers) |
| sumFlowers += flowers[j ++]; |
| LL beauty = (n - i) * full; |
| if(j > 0) beauty += min((leftFlowers + sumFlowers) / j, (LL)target - 1) * partial; |
| ans = max(ans, beauty); |
| } |
| if(i < n) leftFlowers += target - flowers[i]; |
| } |
| return ans; |
| } |
| }; |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人