problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::maximum_and_sum_of_array::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static int maximumANDSum (vector< int > &nums, int numSlots)
 

详细描述

在文件 leetcode.h1126 行定义.

成员函数说明

◆ maximumANDSum()

int leetcode::maximum_and_sum_of_array::Solution::maximumANDSum ( vector< int > &  nums,
int  numSlots 
)
static

< 加上next_slot之后的状态

< slot编号

在文件 leetcode.cpp2871 行定义.

2871 {
2872 int ans = 0;
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) {
2875 //status:已经放置数字的篮子的集合
2876 const int one_count = popcount(status);
2877 if(one_count >= nums.size()) {
2878 continue;
2879 }
2880 for(int next_slot = 0; next_slot < numSlots * 2; ++next_slot) {
2881 if((status & 1 << next_slot) == 0) {
2882 // next_slot是空的
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]));//放置第onecount个数字
2886 ans = max(ans, max_and_sum_of_status[next_status]);
2887 }
2888 }
2889 }
2890 return ans;
2891 }

被这些函数引用 leetcode::maximum_and_sum_of_array::TEST().


该类的文档由以下文件生成: