有序表 建议用二分查找,图省事用了一般的查找
class Solution {
public:
vector<int> arraysIntersection(vector<int>& arr1, vector<int>& arr2, vector<int>& arr3) {
int i = 0, j = 0, k = 0;
vector<int> result;
while(i < arr1.size() && j < arr2.size() && k < arr3.size()){
if(arr1[i] == arr2[j] && arr1[i] == arr3[k]){
result.push_back(arr2[j]);
i++;
j++;
k++;
}
else if(arr1[i] <= arr2[j] && arr1[i] <= arr3[k]) i++;
else if(arr2[j] <= arr3[k]) j++;
else k++;
}
return result;
}
};
最小元素各数位之和
给你一个正整数的数组 A。
然后计算 S,使其等于数组 A 当中最小的那个元素各个数位上数字之和。
最后,假如 S 所得计算结果是 奇数 的请你返回 0,否则请返回 1。
示例 1:
输入:[34,23,1,24,75,33,54,8]
输出:0
解释:
最小元素为 1,该元素各个数位上的数字之和 S = 1,是奇数所以答案为 0。
示例 2:
输入:[99,77,33,66,55]
输出:1
解释:
最小元素为 33,该元素各个数位上的数字之和 S = 3 + 3 = 6,是偶数所以答案为 1。
class Solution {
public:
int sumOfDigits(vector<int>& A) {
int min = A[0];
for(int i = 1; i < A.size(); i++){
if(A[i] < min) min = A[i];
}
int sum = 0;
while(min!=0){
sum+=(min%10);
min/=10;
}
return sum%2==0 ? 1 : 0;
}
};
学习了别人的写法 比较加赋值一步到位 min_val = min(min_val, A.at(i));