xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

LeetCode 826 Most Profit Assigning Work All In One

LeetCode 826 Most Profit Assigning Work All In One

  1. Most Profit Assigning Work

difficulty: Medium / 难度: 中等

solutions

function maxProfitAssignment(difficulty: number[], profit: number[], worker: number[]): number {
  let sum = 0;
  let arr = [];
  for(let i = 0; i < difficulty.length; i++) {
    arr.push({
      d: difficulty[i],
      p: profit[i],
    });
  }
  // 按困难排序
  arr.sort((a, b) => a.d - b.d);
  difficulty.sort((a, b) => a - b)[0];
  worker.sort((a, b) => a - b)[worker.length - 1];
  // let minDifficulty = difficulty.sort((a, b) => a - b)[0];
  // let maxWorker = worker.sort((a, b) => a - b)[worker.length - 1];
  // if(minDifficulty > maxWorker) {
  //   return 0;
  // }
  for(let i = 0; i < worker.length; i++) {
    let j = 0;
    let temp = 0;
    // ✅ 条件的先后顺序很重要 ❗️
    while(j < arr.length && arr[j].d <= worker[i]) {
      // if(minDifficulty > worker[i]) {
      //   break;
      // }
      if(temp < arr[j].p) {
        temp = arr[j].p;
      }
      j++;
    }
    sum += temp
  }
  return sum;
};

image

https://leetcode.com/problems/most-profit-assigning-work/description/?envType=daily-question&envId=2024-06-18

demos

function maxProfitAssignment(difficulty: number[], profit: number[], worker: number[]): number {
  // let minDifficulty = difficulty.sort((a, b) => a - b)[0];
  // let maxWorker = worker.sort((a, b) => a - b)[worker.length - 1];
  // if(minDifficulty > maxWorker) {
  //   return 0;
  // }
  let sum = 0;
  let arr = [];
  for(let i = 0; i < difficulty.length; i++) {
  // console.log(`❌ =`, difficulty[i], profit[i])
    arr.push({
      d: difficulty[i],
      p: profit[i],
    });
  }
  // 按困难排序
  arr.sort((a, b) => a.d - b.d);
  console.log(`arr =`, arr)
  // 排序顺序 bug 
  difficulty.sort((a, b) => a - b)[0];
  worker.sort((a, b) => a - b)[worker.length - 1];
  // let minDifficulty = difficulty.sort((a, b) => a - b)[0];
  // let maxWorker = worker.sort((a, b) => a - b)[worker.length - 1];
  // if(minDifficulty > maxWorker) {
  //   return 0;
  // }
  for(let i = 0; i < worker.length; i++) {
    let j = 0;
    let temp = 0;
    // ❌ 
    // while(arr[j].d <= worker[i] && j < arr.length - 1) {
    // ❌ TypeError: Cannot read properties of undefined (reading 'd')
    // while(arr[j].d <= worker[i] && j < arr.length) {
    // ✅ 条件的先后顺序很重要 ❗️
    while(j < arr.length && arr[j].d <= worker[i]) {
      // if(minDifficulty > worker[i]) {
      //   break;
      // }
      if(temp < arr[j].p) {
        temp = arr[j].p;
      }
      j++;
    }
    // console.log(`✅ worker[i] = `, worker[i])
    console.log(`❓ temp = `, temp)
    sum += temp
  }
  return sum;
};


/* 

Wrong Answer
52 / 57 testcases passed

Input
difficulty =
[5,50,92,21,24,70,17,63,30,53]
profit =
[68,100,3,99,56,43,26,93,55,25]
worker =
[96,3,55,30,11,58,68,36,26,1]

Output
768
Expected
765
 */

/* 


Wrong Answer
22 / 57 testcases passed

Input
difficulty =
[13,37,58]
profit =
[4,90,96]
worker =
[34,73,45]

Stdout
❓ temp =  4
❓ temp =  90
❓ temp =  90
Output
184
Expected
190

 */
 

refs



©xgqfrms 2012-2025

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-06-19 leetcode 字符串的全排列 All In One
2021-06-19 js for...of loop with index All In One
2021-06-19 显示器性能测试 All In One
2021-06-19 js 爬虫下载 mp3 All In One
2020-06-19 You Don't Know the Hack tech in the frontend development
2020-06-19 AI & HR
2020-06-19 Flutter 开发小技巧
点击右上角即可分享
微信分享提示