LeetCode 553. 最优除法(数学)
1. 题目
给定一组正整数,相邻的整数之间将会进行浮点除法操作。例如, [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说明:
输入数组的长度在 [1, 10] 之间。
数组中每个元素的大小都在 [2, 1000] 之间。
每个测试用例只有一个最优除法解。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/optimal-division
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 数学
- a/b/c/da/b/c/da/b/c/d 要结果最大,第一个数 aaa 为分子,要使分母最小
- 考虑分母 b/c/db/c/db/c/d
- (b/c)/d=b/cd(b/c)/d = b/cd(b/c)/d=b/cd
- b/(c/d)=bd/cb/(c/d)=bd/cb/(c/d)=bd/c
- 1d−d1,d>1\frac{1}{d} - \frac{d}{1}, d > 1d1−1d,d>1, 所以第一项比较小,所以先除左边的可以最小
- 让分母后面的数,顺次相除即可,将除分子外的所有数括号括起来
class Solution {public:string optimalDivision(vector<int>& nums) {string ans;int i = 0;if(nums.size() <= 2){while(i < nums.size()){ans += to_string(nums[i++])+"/";}ans.pop_back();return ans;}ans += to_string(nums[0])+"/(";for(i = 1; i < nums.size(); ++i){ans += to_string(nums[i])+"/";}ans.pop_back();ans.push_back(')');return ans;}
};
LeetCode 553. 最优除法(数学)相关推荐
- leetcode 553. Optimal Division | 553. 最优除法(暴力递归->傻缓存)
题目 https://leetcode-cn.com/problems/optimal-division/description/ 题解 两个dp表相互依赖,没继续往后推自底向上的递归. 这题填dp的 ...
- LeetCode中等题之最优除法
题目 给定一组正整数,相邻的整数之间将会进行浮点除法操作.例如, [2,3,4] -> 2 / 3 / 4 . 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级.你需要找出怎么添加括 ...
- 力扣解法汇总553-最优除法
原题链接:力扣 描述: 给定一组正整数,相邻的整数之间将会进行浮点除法操作.例如, [2,3,4] -> 2 / 3 / 4 . 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级.你 ...
- leetcode算法题--最优除法
原题链接:https://leetcode-cn.com/problems/optimal-division/ class Solution {public:string optimalDivisio ...
- LeetCode 441. 排列硬币(数学解方程)
1. 题目 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币. 给定一个数字 n,找出可形成完整阶梯行的总行数. n 是一个非负整数,并且在32位有符号整型的范围 ...
- LeetCode 396. 旋转函数(数学)
1. 题目 给定一个长度为 n 的整数数组 A . 假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的"旋转函数" F 为: F(k) = 0 * Bk[0] ...
- LeetCode 1739. 放置盒子(数学)
文章目录 1. 题目 2. 解题 1. 题目 有一个立方体房间,其长度.宽度和高度都等于 n 个单位. 请你在房间里放置 n 个盒子,每个盒子都是一个单位边长的立方体.放置规则如下: 你可以把盒子放在 ...
- LeetCode 573. 松鼠模拟(数学)*
文章目录 1. 题目 2. 解题 1. 题目 现在有一棵树,一只松鼠和一些坚果.位置由二维网格的单元格表示. 你的目标是找到松鼠收集所有坚果的最小路程,且坚果是一颗接一颗地被放在树下. 松鼠一次最多只 ...
- LeetCode 829. 连续整数求和(数学)
1. 题目 给定一个正整数 N,试求有多少组连续正整数满足所有数字之和为 N? 示例 1: 输入: 5 输出: 2 解释: 5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 ...
最新文章
- java linkedlist 查找_Java中LinkedList真的是查找慢增删快
- 解放你内心的自然领袖,从你的内心而非你的自我来领导你自己
- JButton的setRollover出现的奇怪问题
- 关于HOOK API Lib 0.1 For Delphi
- 18岁初中毕业学Java_刚满十八 初中毕业 java自学完了 没学历 该怎么办?
- C语言中队列、堆栈、内存映射、多线程概念
- android线性布局快捷键,【整理】Android图形界面知识学习与总结之:Linear Layout线性布局...
- 对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解
- ar开发 ue4_UE4 和 ARKit 入门
- 《你不知道的JavaScript》-- 精读(一)
- Python学习之购物车
- 解决 spring cloud git config 配置中心多环境问题
- 关于Microsoft office深色模式设置
- 推荐几个后台管理界面
- 三阶魔方大中小魔公式_三阶魔方花样玩法 公式汇总大全
- RecyclerView三种布局下的上拉加载 下拉刷新
- 快速查看网页元素的CSS样式
- laravel + xampp 除了根目录其他路由都是404的解决方法
- 移远NB模组(BC26)OPENCPU开发——MQTT上传接收
- 计算机编程语言发展简史