楼主:
JIWP (JIWP)
2024-11-08 22:44:182275. Largest Combination With Bitwise AND Greater Than Zero
有一个正整数矩阵:candidates
对candidates里每种组合进行 & 操作
对于每个&操作后大于的组合
请回传长度最长是多少?
思路:
将每个candidate内部的数字转换成二进制
接着统计每一位元有几个1
回传最多1的数量就好
C code :
int largestCombination(int* candidates, int candidatesSize) {
int *record = (int*)calloc(25, sizeof(int)), maxnum = 0;
for (int i = 0; i < candidatesSize; i++) {
if (candidates[i] > maxnum) {
maxnum = candidates[i];
}
}
int idx = 0;
for (int i = 1; i <= maxnum; i <<= 1) {
for (int j = 0; j < candidatesSize; j++) {
if ((candidates[j] & i) >0) {
record[idx]++;
}
}
idx++;
}
int ans = 0;
for (int i = 0; i < 25; i++) {
if (record[i] > ans) {
ans = record[i];
}
}
return ans;
}