Description:
Note:
Solution (C++):
算法分析:
这道题不难,意思好懂。其实我觉得最不好处理的地方就是一般都能想到新建一个数组,并初始化为全元素0,然后将原数组中不为0的数存入新数组中,那么新数组剩下的元素由于没有改变,自然就为0.那么新数组就是原数组排序后的结果了。那么题目要求只能在原数组中处理,我就会有点乱了手脚。还好后来想到了,其实创不创建新数组都无所谓。核心思路都一样,还是要多多练习呀。
程序分析:
程序中唯一要说的就是,第二个循环中由于最开始已经:
int j=0;
而且,第一次循环中,j的值是一直+1的,实际上,j的值就表示了原数组中非0的元素的个数。后面的第二次循环就:
for(;j<nums.size();j++){
/*代码*/
}