553. 最优除法题解
题目来源:553. 最优除法
2022.02.27 每日一题
每日一题专栏地址:LeetCode 每日一题题解更新中❤️💕
不知不觉小明已经坚持写题解 30 天了,要一起加油呀
今天的题目大意是给定一个数组,数值中相邻的整数之间会进行除法运算,让我们来添加括号来改变运算的优先顺序,最后得到最大的结果
既然需要获得最大值,那么就需要让 n u m s [ 0 ] nums[0] nums[0]除的数字越小越好,看了一眼题目的数据范围为 [ 2 , 1000 ] [2,1000] [2,1000]之间,因此只需要 n u m s [ 0 ] nums[0] nums[0]后面的数字安顺序一次相除,使其值越小越好
class Solution {
public:
string optimalDivision(vector<int> &nums) {
int len = nums.size();
if (len == 1)
return to_string(nums[0]);
if (len == 2)
return to_string(nums[0]) + "/" + to_string(nums[1]);
string res = to_string(nums[0]) + "/" + "(" + to_string(nums[1]);
for (int i = 2; i < len; i++)
res += ("/" + to_string(nums[i]));
return res + ")";
}
};
class Solution {
public String optimalDivision(int[] nums) {
int len = nums.length;
if (len == 1) return String.valueOf(nums[0]);
if (len == 2) return nums[0] + "/" + nums[1];
StringBuilder res = new StringBuilder(nums[0] + "/" + "(" + nums[1]);
for (int i = 2; i < len; i++)
res.append("/").append(nums[i]);
return res + ")";
}
}