把数组中的0移动到数组末尾

代码中包含两种方法:一种是覆盖,另一种是快排思想。
详情请看灯神视频

#include<cstdio>
#include<algorithm>
using namespace std;
void moveZeros(int arr[],int n){
	int zeros=0;
	for(int i=0;i<n;i++){
		if(arr[i] != 0){
			arr[i-zeros]=arr[i];
		}else{
			zeros++;
		}
	}
	int j=n-zeros;
	while(j<n){
		arr[j]=0;
		j++;
	}
} 
void moveZeros1(int arr[],int n){
	int j=0;
	for(int i=0;i<n;i++){
		if(arr[i] != 0){
			swap(arr[i],arr[j]);
			j++;
		}
	}
}
int main(){
	int arr[]={1,7,0,2,3,0,4,8};
	moveZeros1(arr,8);
	for(int i=0;i<8;i++){
		printf("%d ",arr[i]);
	}
	return 0;
} 
全部评论

相关推荐

点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
07-03 16:13
嘉应学院 Python
xiaolihuam...:很明显骗子,如果是hr直接约你面试了,哪用得着内推,如果是员工的话,你得多优秀,一线员工直接加你微信,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务