关注
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
查看原帖
点赞 评论
相关推荐
12-19 19:32
上海理工大学 产品经理 点赞 评论 收藏
分享
11-06 18:28
南京大学 后端工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
170646次浏览 2873人参与
# 找工作,行业重要还是岗位重要? #
85144次浏览 1685人参与
# 职场上哪些行为很加分? #
306463次浏览 3448人参与
# 大家每天通勤多久? #
69416次浏览 440人参与
# 你面试体验感最差/最好的公司 #
16112次浏览 263人参与
# 实习的内耗时刻 #
210831次浏览 1537人参与
# 一人说一个提前实习的好处 #
9682次浏览 194人参与
# 互联网行业现在还值得去吗 #
46824次浏览 351人参与
# 今年你最想重开的一场面试是? #
3609次浏览 65人参与
# 秋招落幕,你是He or Be #
10230次浏览 209人参与
# 重来一次,你会对开始求职的自己说 #
5685次浏览 142人参与
# 实习没事做是福还是祸? #
15906次浏览 242人参与
# 反问环节如何提问 #
126320次浏览 2663人参与
# 礼物开箱Plog #
599次浏览 21人参与
# 团建是“福利”还是是 “渡劫” #
6789次浏览 145人参与
# 我的第一份实习怎么找的 #
208454次浏览 1827人参与
# 工作中听到最受打击的一句话 #
5957次浏览 104人参与
# 比亚迪工作体验 #
74336次浏览 281人参与
# 你小心翼翼的闯过多大的祸? #
10720次浏览 156人参与
# 大厂VS公务员你怎么选 #
74329次浏览 681人参与

