找到最小和
Coddy 位运算 课程的第 17 课,共 17 课。
挑战
中等给定一个大小为 <strong>n</strong> 的数组 <strong>a</strong>。
你可以对这个数组执行以下操作:
- 选择两个不同的整数
<strong>i</strong>,<strong>j</strong>(1 ≤ i < j ≤ n),将<strong>a<sub>i</sub></strong>替换为<strong>x</strong>,并将<strong>a<sub>j</sub></strong>替换为<strong>y</strong>。为了不破坏数组,必须满足条件<strong>a<sub>i </sub>| a<sub>j </sub>= x | y</strong>,其中<strong>|</strong>表示按位或运算。注意,<strong>x</strong>和<strong>y</strong>都是非负整数。
请输出执行任意次数上述操作后,数组能够得到的最小和。
亲手试试
#include <vector>
using namespace std;
int FindMinSum(vector<int> a) {
// 在这里编写代码
}位运算中的所有课
自己练习: C++ 在线编译器