-
给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。
-
返回满足此条件的 任一数组 作为答案。
class Solution {
public:
vector<int> sortArrayByParity(vector<int>& nums) {
int n = nums.size();
vector<int> res(n);
int left = 0, right = n - 1;
for (auto & num : nums) {
if (num % 2 == 0) {
res[left++] = num;
} else {
res[right--] = num;
}
}
return res;
}
};
这是一个 C++ 中的范围-based for 循环(也称为 foreach 循环),用于遍历容器类(例如数组、向量、列表等)中的元素。
在这个循环中,关键字 “auto” 用于自动推导 “nums” 容器中的元素的类型,而 “&” 则表示使用引用(reference)方式进行访问,以便在循环中对元素进行修改。
具体地说,这段代码中的循环通过引用方式访问 “nums” 容器中的每个元素,并将其绑定到名为 “num” 的变量上,然后可以通过 “num” 变量来访问当前遍历到的元素。由于使用了引用方式访问,因此在循环中对 “num” 进行的修改会直接反映在 “nums” 容器中的对应元素上。
这种循环语法简洁、易读,并且可以避免对容器元素进行拷贝,适用于对容器中的元素进行只读或读写操作的情况。需要注意的是,如果不需要在循环中修改容器元素,可以使用 “const auto & num” 来表示只读访问,以增加代码的安全性和性能。
int Qua(int x){
return x & 1;
}
这段代码是一个简单的函数,名为 “Qua”,它接受一个整数参数 “x”。函数体中的表达式 “x & 1” 是按位与运算符,用于对 “x” 的二进制表示与二进制表示的数字 1 进行位运算。
具体而言,这段代码的作用是判断 “x” 的二进制表示中最低位(最右边的位)是否为 1。如果最低位为 1,函数将返回 1,否则返回 0。这是因为在二进制中,最低位为 1 表示奇数,最低位为 0 表示偶数。通过按位与运算符 “&” 和数字 1 进行位运算,可以提取出 “x” 的最低位,并将其作为函数的返回值。
例如,如果调用 “Qua(5)”,函数将返回 1,因为数字 5 的二进制表示是 101,最低位为 1,表示它是一个奇数。而如果调用 “Qua(8)”,函数将返回 0,因为数字 8 的二进制表示是 1000,最低位为 0,表示它是一个偶数。