代码之家  ›  专栏  ›  技术社区  ›  Varun Hegde

基于递归的加权作业调度

  •  0
  • Varun Hegde  · 技术社区  · 6 年前

    我想用暴力解决这个问题 weighted job scheduling 问题。

    这就是我尝试过的。

    const solution = jobs => {
      let maxWeight = 0;
    
      for (let i = 0; i < jobs.length; i++) {
        const endTime = jobs[i][1];
        const weight = jobs[i][2];
    
        const filteredJobs = jobs.filter(
          (job, index) => job[0] >= endTime);
    
        const returnedWeight = solution(filteredJobs);
        if (returnedWeight > maxWeight) {
          maxWeight = returnedWeight;
        }
        return weight + maxWeight;
      }
      return maxWeight;
    };
    

    有人能指出我的错误吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   juvian    6 年前

    你的回路 for (let i = 0; i < jobs.length; i++) { 只在i=0时运行,稍后您会这样做 return weight + maxWeight; . 不知道你为什么这么说,我猜你是故意的

      if (returnedWeight + weight > maxWeight) {
        maxWeight = returnedWeight + weight;
      }