Advertisement

LeetCode ---- 826. 安排工作以求最大收益

阅读量:

LeetCode 每日一题 ---- 【826.安排工作以达到最大收益】

  • 826.规划任务以实现最优效益
      • 途径:排序结合双指针技术

工作安排与最大收益优化

排序与双指针方法应用

该题的数据规模设定为1e4,若采用直接暴力求解的方式,很可能会导致运行时间超出限制。将工人能力值按从小到大的顺序进行排列,同时将任务难度与对应收益进行绑定,并按照任务难度由低到高的顺序进行排序。对于某一位工人而言,其能够胜任的任务,后续能力更强的工人同样可以完成。因此,在处理后续工人时,只需关注当前工人能力值所对应的难度区间范围,即在该区间内寻找最大收益即可,同时在整个过程中持续更新并维护当前所能获取的最大利润值。

复制代码
    class Solution {
    public int maxProfitAssignment(int[] difficulty, int[] profit, int[] worker) {
        int n = difficulty.length;
        int[][] jobs = new int[n][2];
        for (int i = 0; i < n; i ++ ) {
            jobs[i][0] = difficulty[i];

全部评论 (0)

还没有任何评论哟~