给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n = nums.size();
int zc = 0;
for(int i=0;i<n;++i){
if(nums[i]==0){
++zc;
}else{
nums[i-zc]=nums[i];
}
}
for(int i=0;i<zc;++i){
nums[n-1-i] = 0;
}
}
};
class Solution {
public:
vector<int> twoSum(vector<int>& numbers, int target) {
int n = numbers.size();
vector<int> v;
int st = 0;
int ed = n-1;
while(st<=ed){
if(numbers[st]+numbers[ed]==target){
v.push_back(st+1);
v.push_back(ed+1);
break;
}else if(numbers[st]+numbers[ed]<target){
st++;
}else{
ed--;
}
}
return v;
}
};