#include <leetcode.h>
◆ maximumANDSum()
int leetcode::maximum_and_sum_of_array::Solution::maximumANDSum |
( |
vector< int > & |
nums, |
|
|
int |
numSlots |
|
) |
| |
|
static |
< 加上next_slot之后的状态
< slot编号
在文件 leetcode.cpp 第 2871 行定义.
2873 vector<int> max_and_sum_of_status(1 << numSlots * 2);
2874 for(
unsigned int status = 0; status < max_and_sum_of_status.size(); ++status) {
2876 const int one_count = popcount(status);
2877 if(one_count >= nums.size()) {
2880 for(
int next_slot = 0; next_slot < numSlots * 2; ++next_slot) {
2881 if((status & 1 << next_slot) == 0) {
2883 const int next_status = status | 1 << next_slot;
2884 const auto slot_num = next_slot / 2 + 1;
2885 max_and_sum_of_status[next_status] = max(max_and_sum_of_status[next_status], max_and_sum_of_status[status] + (slot_num & nums[one_count]));
2886 ans = max(ans, max_and_sum_of_status[next_status]);
被这些函数引用 leetcode::maximum_and_sum_of_array::TEST().
该类的文档由以下文件生成: