老师3-4 的优化方案里面应该还可以继续优化
来源:3-4 即使简单的问题,也有很多优化的思路
旧街深港
2020-12-20
老师3-4的算法应该还可以再优化一下 就是将for循环的 i=0 修改为 i=k 优化的方案做到的是 没有必要每次都从0开始遍历 每次从已经交换完位置的数字开始遍历 因为这个不是排序操作
写回答
1回答
-
旧街深港
提问者
2020-12-20
原代码
int cutpoint1=0;
for (int i=0;i<nums.length;i++){
if (nums[i]!=0) {
int cut=nums[i];
nums[cutpoint1]=cut;
nums[i]=nums[cutpoint1];
cutpoint1++;
}再次优化后的代码
int cutpoint1=0;
for (int i=cutpoint1;i<nums.length;i++){
if (nums[i]!=0) {
int cut=nums[i];
nums[cutpoint1]=cut;
nums[i]=nums[cutpoint1];
cutpoint1++;
}012020-12-20
相似问题