Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm số nhiệm vụ có thể hoàn thành với điều kiện cho trước trong Python


Cho danh sách tasks (độ khó nhiệm vụ) và people (sức mạnh người). Mỗi người chỉ làm tối đa một nhiệm vụ, sức mạnh phải >= độ khó. Tìm số nhiệm vụ tối đa có thể hoàn thành.

Ví dụ, tasks = [4, 3, 9, 15], people = [10, 5, 3, 2], đầu ra 3.

Các bước giải quyết:

  • Sắp xếp tasks và people.
  • ct := 0, ind := 0.
  • Duyệt từng người i:
    • Duyệt nhiệm vụ từ ind:
      • Nếu people[i] >= tasks[j]: ct++, ind++, thoát vòng lặp nhiệm vụ.
      • Ngược lại thoát vòng lặp nhiệm vụ.
  • Trả về ct.

Ví dụ minh họa

class Solution:
    def solve(self, tasks, people):
        tasks.sort()
        people.sort()
        ct = 0
        ind = 0
        for i in range(len(people)):
            for j in range(ind, len(tasks)):
                if people[i] >= tasks[j]:
                    ct += 1
                    ind += 1
                    break
                else:
                    break
        return ct

ob = Solution()
tasks = [4, 3, 9, 15]
people = [10, 5, 3, 2]
print(ob.solve(tasks, people))

Đầu vào

[4, 3, 9, 15], [10, 5, 3, 2]

Đầu ra

3