给3个组员分配任务

[题目链接](https://www.nowcoder.com/practice/dbf078efb7b64f80806fbf33b9b19cf5)

思路

个任务分配给三位员工,每人分别不超过 个,求方案数。

直接枚举:设员工小v分到 个任务,员工小i分到 个任务,则员工小o分到 个任务。只需满足:

枚举 ,检查 是否合法即可。由于 ,双重循环最多 次,完全没有性能问题。

代码

class Solution {
public:
    int assignJobs(int n, int x, int y, int z) {
        int count = 0;
        for (int a = 0; a <= x && a <= n; a++) {
            for (int b = 0; b <= y && b <= n - a; b++) {
                int c = n - a - b;
                if (c >= 0 && c <= z) {
                    count++;
                }
            }
        }
        return count;
    }
};
import java.util.*;

public class Solution {
    public int assignJobs (int n, int x, int y, int z) {
        int count = 0;
        for (int a = 0; a <= x && a <= n; a++) {
            for (int b = 0; b <= y && b <= n - a; b++) {
                int c = n - a - b;
                if (c >= 0 && c <= z) {
                    count++;
                }
            }
        }
        return count;
    }
}

复杂度分析

  • 时间复杂度,最坏情况下为 ,其中
  • 空间复杂度