版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lcharon/article/details/77343438
[LeetCode]553. Optimal Division
题目描述
思路
medium里的一道水题,遍历一次就好
因为要得到除法运算的最大值
所以分子尽可能大,分母尽可能小
而且数组是降序排列的,所以第一个元素做分子,后面的连除做分母就是结果了
代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Solution {
public:
string optimalDivision(vector<int>& nums) {
if (nums.size() == 1)
return to_string(nums[0]);
else if (nums.size() == 2)
return to_string(nums[0]) + "/" + to_string(nums[1]);
else {
string res = to_string(nums[0]) + "/(";
for (int i = 1; i < nums.size() - 1; ++i)
res += to_string(nums[i]) + "/";
res += to_string(nums[nums.size() - 1]) + ")";
return res;
}
}
};
int main() {
Solution s;
vector<int> nums = { 1000, 100, 10, 2 };
cout << s.optimalDivision(nums) << endl;
system("pause");
return 0;
}