小算法--数组中元素的移动

博客探讨如何在给定包含多个0和其他唯一元素的数组中,将所有0移到数组尾部。提供了两种方法实现:一种是遇到0时让后续元素逐个前移;另一种是通过交换数组前后非0和0元素。文章强调第二种方法效率较高。
摘要由CSDN通过智能技术生成

题目描述:给定一个数组,假定这个数组中多个0,并且其他元素都各出现一次,

    试将所有的0移到数组的尾部。

    举例:

给定数组:  1,3,0,5,7,0,3,4

最后所得数组:1,3,5,7,3,4,0,0

下边给出两种方法实现:

方法一:原理就是遇到0的时候,后边的元素统一向前移动。如果前边是1个0,后边元素

向前移动一个,如果两个0,后边元素向前移动2个,以此类推,最后将后边的元素填充为

0即可。

代码实现:

#include<stdio.h>

void moveZeros(int arr[], int len)
{
	if (len <= 0)
	{
		return;
	}
	int i = 0;
	int zeros = 0;
	for (i = 0;i &l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值