【排序以及使用Java的java.awt.Point】lc826 安排工作以达到最大收益 Scala题解
题解地址
https://leetcode.cn/problems/most-profit-assigning-work/solution/scala-pai-xu-by-yhm138_-rzf3/
解题思路
练习在scala中使用Java的java.awt.Point
代码
object Solution {
def maxProfitAssignment(_difficulty: Array[Int], _profit: Array[Int], _worker: Array[Int]): Int = {
var difficulty=_difficulty;
var profit=_profit;
var worker=_worker;
var N = difficulty.length;
var jobs =Array.fill(N)(new java.awt.Point(0,0));
for (i<-Range(0,N,1)){
jobs(i) = new java.awt.Point(difficulty(i), profit(i));
}
jobs=jobs.sortWith((a,b)=>(a.x<b.x));
worker=worker.sorted;
var ans = 0;
var i = 0;
var best = 0;
for (skill<-worker) {
while (i < N && skill >= jobs(i).x){
best = Math.max(best, jobs(i).y);
i=i+1;
}
ans += best;
}
// return ans;
return ans;
}
}

浙公网安备 33010602011771号