leetcode-553:最优除法

简介: leetcode-553:最优除法

题目

题目链接

给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [2,3,4] -> 2 / 3 / 4 。

但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。你的表达式不应该含有冗余的括号。

示例:

输入: [1000,100,10,2]
输出: "1000/(100/10/2)"
解释:
1000/(100/10/2) = 1000/((100/10)/2) = 200
但是,以下加粗的括号 "1000/((100/10)/2)" 是冗余的,
因为他们并不影响操作的优先级,所以你需要返回 "1000/(100/10/2)"。
其他用例:
1000/(100/10)/2 = 50
1000/(100/(10/2)) = 50
1000/100/10/2 = 0.5
1000/100/(10/2) = 2

解题

方法一:数学

参考链接

class Solution {
public:
    string optimalDivision(vector<int>& nums) {
        int n=nums.size();
        if(n==1) return to_string(nums[0]);
        if(n==2) return to_string(nums[0])+'/'+to_string(nums[1]);
        string res=to_string(nums[0])+"/(";
        for(int i=1;i<n-1;i++){
            res+=to_string(nums[i])+'/';
        }
        res+=to_string(nums[n-1])+')';
        return res;
    }
};


相关文章
|
6月前
|
算法 Go
golang力扣leetcode 399.除法求值
golang力扣leetcode 399.除法求值
56 0
|
5月前
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
6月前
|
存储 人工智能 BI
leetcode 399 除法求值
leetcode 399 除法求值
36 1
|
测试技术
LeetCode-553 最优除法
LeetCode-553 最优除法
|
6月前
|
人工智能 BI
leetcode-399:除法求值
leetcode-399:除法求值
67 0
力扣题 两数相除:画图解析 采用递归计算除法(不使用乘法、除法和 mod 运算符)
这是力扣上的一道题目,难度为中等,两数相除:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。
力扣题 两数相除:画图解析 采用递归计算除法(不使用乘法、除法和 mod 运算符)
|
算法
[leetcode] 最优除法 小思维
如果是仅有一个数的时候直接返回那个数即可 如果有两个数,答案就是“a/b” 如果是三个数以上{ 为了让结果最大,那么说要让被除数更小。在整数的情况下,除法只会让数越除越小,所以说把除了第一个数之外的所有数放在括号里,比如: a/(b/c/d/…/f) }
88 0
[leetcode] 最优除法 小思维
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行