1class Solution {2public:3bool canPartition(vector<int> &nums) {4int sum = 0;5int n = nums.size();6for (int i = 0; i < n; i++) sum = sum + nums[i];7cout << sum;89if (sum % 2 == 0) {10int s = sum / 2;11int t[n + 1][s + 1];12for (int i = 0; i < s + 1; i++) t[0][i] = false;13for (int i = 0; i < n + 1; i++) t[i][0] = true;1415for (int i = 1; i < n + 1; i++) {16for (int j = 1; j < s + 1; j++) {17if (nums[i - 1] <= j)18t[i][j] = t[i - 1][j - nums[i - 1]] || t[i - 1][j];19else20t[i][j] = t[i - 1][j];21}22}23return t[n][s];24} else25return false;26}27};