返回信息流输入0,1,0,3,12
输出啥→_→
通过『我邮2.0』发布
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #95802同步于 2018/4/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
求助【LeetCode】【easy】
GiCi
2018/4/24镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
二层循环有个break,那j++和nums!=0不就都没用了,反正都会交换一次,也就是从nums[0]开始到nums[2],判断当前为零就与后面的那个交换一次就好了
我的想法是对每个元素看是不是0
如果是0,就从他后面的第一个个元素开始寻找第一个不为0的元素,找到后交换为零的元素和为零元素后面的第一个不为零元素,交换完break跳出第二层循环。
然后i++继续寻找下一个为零的元素
→_→
【 在 lt1103725556 (挪威的森林) 的大作中提到: 】
: 二层循环有个break,那j++和nums!=0不就都没用了,反正都会交换一次,也就是从nums[0]开始到nums[2],判断当前为零就与后面的那个交换一次就好了
通过『我邮2.0』发布
依您看咋改呢
【 在 lt1103725556 (挪威的森林) 的大作中提到: 】
: 二层循环有个break,那j++和nums!=0不就都没用了,反正都会交换一次,也就是从nums[0]开始到nums[2],判断当前为零就与后面的那个交换一次就好了
通过『我邮2.0』发布
不是很懂java,你那个判断语句写一起真的行吗,不满足不会直接跳出来吗?我这么写的最后出来是 1 3 12 0 0
for(int i=0;i<5;i++)
{
if (nums[i] == 0){
for(int j=i+1;j<5;j++)
{
if (nums[j]!=0)
{
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
break;
}
}
}
}
你的想法也对,只是实现的不对。还可以改进一下找非零数位置的方法。至于代码哪里出错,看不出来就debug一下,多debug以后就能看出来了。
【 在 GiCi (GiCi) 的大作中提到: 】
: 输入0,1,0,3,12
: 输出啥→_→
: 通过『我邮2.0』发布
通过『我邮2.0』发布