【排序以及使用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;
    }
}
posted @ 2022-07-10 12:39  yhm138  阅读(34)  评论(0)    收藏  举报