关注
js版 // arr为绳长数组, m为需要裁剪成的绳数
var longestRope = function(arr, m) {
arr.sort((a, b) => {
return a - b
})
let lower = 0
let higher = arr[arr.length - 1]
while((higher - lower) > 0.001) {
let mid = (lower + higher) / 2
if (enough(arr, m, mid)) {
lower = mid
} else {
higher = mid
}
}
return toDecimal(lower, 2)
}
function enough(arr, m, ropeLength) {
let sum = 0
let len = arr.length
for(let i = 0; i < len; i ++) {
sum += parseInt(arr[i] / ropeLength)
if (sum >= m) {
return true
}
}
return false
}
// 保留n位小数,不足补0
function toDecimal(number, n) {
number = number.toFixed(n)
let index = number.indexOf('.')
if (index < 0) {
index = s.length
number += '.'
}
while (number.length <= index + n) {
number += '0'
}
return number
}
// 测试用例
let arr = [3, 4, 5]
console.log(longestRope(arr, 4)) // 2.50
查看原帖
点赞 评论
相关推荐
不愿透露姓名的神秘牛友
03-17 16:51
点赞 评论 收藏
转发
投递淘天集团等公司10个岗位 >
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
352331次浏览 7289人参与
# 你更愿意参加线上面试还是线下面试? #
4727次浏览 73人参与
# 晒一晒我的offer #
2766697次浏览 49497人参与
# 如何确定求职岗位 #
100978次浏览 2395人参与
# 华为求职进展汇总 #
433584次浏览 4353人参与
# 机械人怎么评价今年的华为 #
49353次浏览 404人参与
# 非技术岗薪资爆料 #
5046次浏览 115人参与
# 第一次面试 #
13853次浏览 212人参与
# 如果再来一次,你还会学硬件吗 #
16796次浏览 332人参与
# 海信求职进展汇总 #
6786次浏览 91人参与
# 通信硬件薪资爆料 #
137356次浏览 977人参与
# 来聊聊机械薪资天花板是哪家 #
18325次浏览 140人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
22084次浏览 212人参与
# 除了offer,现在你还缺点啥? #
2046次浏览 45人参与
# 应届生应该先就业还是先择业 #
10729次浏览 103人参与
# 通信硬件人笔面经互助 #
63622次浏览 1415人参与
# 百度工作体验 #
18998次浏览 205人参与
# 讲讲我经历过的年终奖 #
5814次浏览 76人参与
# 租房前辈的忠告 #
19767次浏览 1579人参与
# 软件开发薪资爆料 #
536099次浏览 9214人参与