https://www.lintcode.com/problem/and-and-or/description
public class Solution {
/**
* @param n:
* @param nums:
* @return: return the sum of maximum OR sum, minimum OR sum, maximum AND sum, minimum AND sum.
*/
public long getSum(int n, int[] nums) {
// write your code here
int maxOr = nums[0];
int maxAnd = nums[0];
int minOr = nums[0];
int minAnd = nums[0];
for (int i = 1; i < n; i++) {
maxOr |= nums[i];
maxAnd = Math.max(maxAnd, nums[i]);
minOr = Math.min(minOr, nums[i]);
minAnd &= nums[i];
}
return (long) maxOr + maxAnd + minAnd + minOr;
}
}