剪树枝

作者: Joah_l | 来源:发表于2019-11-21 10:54 被阅读0次
/**
 * NOTE: 有一条马路,马路上有很多树,树的高度不一。现在要统一剪树,剪到高度为 h。
 * 意思就是,比 h 高的树都剪到 h,比 h 低的树高度不变。
 * 所有的树剪掉的总长度为 C。 现在要使 C > 某个值的情况下(假设为 MM),使 h 最大。问怎么确定 h。
 */

// NOTE: 树枝
const tree = [10, 3, 2, 21, 8, 19, 7, 11]

/**
 *
 * @param {树枝的集合} tree
 * @param {剪树枝的总长度} c
 * @param {每次剪多长} range
 */
function cutTree(tree, c, range) {
  if (tree.length === 0) {
    return 0
  }
  let start = 0
  let end = Math.max(...tree)
  while (start <= end) {
    // 每次都取中间
    const mid = start + ((end - start) >> 1)
    // console.log(mid)
    let h = 0
    for (let i = 0; i < tree.length; i++) {
      // 挑选出大于 mid 的数
      if (tree[i] > mid) {
        h = h + tree[i] - mid
      }
    }
    if (h > c) {
      if (h - c <= range) {
        return mid
      }
      // 剪 range
      end = end - range
    } else {
      start = start + range
    }
  }
  return -1;
}

const res = cutTree(tree, 12, 1)
console.log(res)

const a = cutTree([10, 8, 9, 7, 7, 6], 16, 1);
const b = cutTree([10, 8, 9, 7, 7, 6], 20, 1);
const c = cutTree([10, 8, 9, 7, 7, 6], 15, 1);

// console.log(a, b, c);


相关文章

  • 今天看了两个多小时的书还是写不好

    还剩十来颗苹果树,今天下午下地打算很快就剪完了。打算剪完后用苹果树枝条编一个框。没想到树枝剪完后就快天黑了,没时间...

  • 端午习俗

    每周三要带老妈去针灸,出发前给她打了个电话,叫她帮忙采一些艾草和榕树枝,她说榕树枝已经剪好了,正在阳台剪艾草。 也...

  • 天空

    被树枝剪碎的天空 染上醉人的绯色 与夕阳在云端缠绵

  • 自己养的花虽然很宝贝,也得狠心下手修剪,剪剪更美丽

    养花儿需要修和剪。 修是指修整树枝,剪是指剪截枝条。通过整形修剪,使株型整齐,形态优美。 减掉不必要的枝条可以节省...

  • 16~树枝,树枝!

    来世做一棵树 千姿百态 和天空在一起

  • 硕果累累

    前年公司院内栽的海棠树,去年剪的很了了,没有结果,今年一点没剪,小小的海棠果,把树枝都压弯了。 再说说这种杏,个大...

  • 明天打算拍视频了

    今天苹果树枝终于剪完了,女儿催着要回家了,女儿说6点了。本来中午来打算剪到5点的,现在剪到6点终于剪完了,我心里也...

  • 女人与狗(下)

    文/一剪梅图片发自简书App不几日,小区内绿化清剪树枝,几个太专业修整树木的安保人员在修枝剪叶。大概是业主投诉的缘...

  • 树枝

    这是第四幅画。临摹自水彩私享课。 纸:宝虹300g棉浆纸16k 笔:秋宏斋秀意和蒲公英 颜料:国产温莎牛顿24色 ...

  • 树枝

    大概是2016年元旦前一个月吧,我微信通信录里跳出一个陌生好友,接下来便有了故事。 我叫陆离,听名字不男不女,其实...

网友评论

      本文标题:剪树枝

      本文链接:https://www.haomeiwen.com/subject/djbzictx.html