题目:
给定一系列价格 [p1,p2…,pn] 和一个目标 target,将每个价格 pi 舍入为 Roundi(pi) 以使得舍入数组 [Round1(p1),Round2(p2)…,Roundn(pn)] 之和达到给定的目标值 target。每次舍入操作 Roundi(pi) 可以是向下舍 Floor(pi) 也可以是向上入 Ceil(pi)。
如果舍入数组之和无论如何都无法达到目标值 target,就返回 -1。否则,以保留到小数点后三位的字符串格式返回最小的舍入误差,其定义为 Σ |Roundi(pi) - (pi)|( i 从 1 到 n )。
- 1 <= prices.length <= 500 表示价格的每个字符串
- prices[i] 都代表一个介于 0 和 1000 之间的实数,并且正好有 3 个小数位。
- target 介于 0 和 1000000 之间。
题目链接:最小化舍入误差以满足目标
C++:
保留小数返回double类型把我搞懵了, 题目的target没有说是什么类型小声bb
class Solution {
public:
static bool cmp(double a, double b){
return a > b;
}
string minimizeError(vector<string>& prices, int target) {
int lens = prices.size();
vector<double> tmp;
int