问题遇到的现象和发生背景
lintcode的每日题,测试数据都能正确输出,最后提交用的数组无法得出正确结果
是将数组中与设置相同的数全放到数组前面
问题相关代码,请勿粘贴截图
class Solution {
public:
/**
* @param nums: a list of integer
* @param target: an integer
* @return: nothing
*/
void moveTarget(vector<int> &nums, int target) {
// write your code here
int i,j,n=0;
for(i=1;i<sizeof(nums);i++){
if(nums[i]==target){
n++;
for(j=i-1;j>n-1;j--){
nums[j+1]=nums[j];
}nums[n]=nums[n-1];
nums[n-1]=target;
}
}
}
};
运行结果及报错内容
[-10,4,-1,8,10,10,-8,-2,-8,1,-5,3,-9,-6,-6,8,3,-3,-9,2,-6,10,7,4,10,-6,2,3,-6,-7]
10
[10,10,10,-10,4,-1,8,-8,-2,-8,1,-5,3,-9,-6,-6,8,3,-3,-9,2,-6,7,4,10,-6,2,3,-6,-7]
正确答案:[10,10,10,10,-10,4,-1,8,-8,-2,-8,1,-5,3,-9,-6,-6,8,3,-3,-9,2,-6,7,4,-6,2,3,-6,-7],最后一个10未能放到前面