Menu
CoddyTech

Partition Equal Subset Sum

Trung bìnhQuy hoạch độngpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một mảng nums gồm các số nguyên dương. Hãy xác định xem bạn có thể chia các giá trị thành hai nhóm có tổng bằng nhau hay không. Mỗi giá trị chỉ thuộc đúng một nhóm, và một nhóm có thể nhận các giá trị ở bất kỳ vị trí nào. Trả về true nếu có thể chia như vậy, nếu không thì trả về false.

Hàm

canPartition(nums: integer-array) → boolean
numsinteger-array
các giá trị dương để chia thành hai nhóm
Trả vềboolean
true nếu các giá trị có thể chia thành hai nhóm có tổng bằng nhau, false nếu không thể

Ràng buộc

  • 1 ≤ nums.length ≤ 200
  • 1 ≤ nums[i] ≤ 100

Ví dụ

Đầu vào
nums = [6, 1, 4, 9, 2]
Đầu ra
true
Giải thích
Tổng là 22, nên mỗi nhóm cần có 11. Các nhóm 9 + 2 và 6 + 1 + 4 đều có tổng bằng 11, vậy đáp án là true.
challenge icon

Câu hỏi mở rộng

Khi không thể chia đều, bạn có thể trả về độ chênh lệch nhỏ nhất có thể giữa tổng của hai nhóm không?

Đặt lại code
def canPartition(nums):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

nums = [6, 1, 4, 9, 2]

Đầu ra mong đợi

true