移动0元素

/** * Created by seven_hu on 2015/9/21. *//**Given an array nums, write a function to move all 0‘s to the end of it while maintaining the relative order of the non-zero elements.

For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

Note:You must do this in-place without making a copy of the array.Minimize the total number of operations.Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.*** */public class Solution {    public static void main(String[] args){        int[] a={0,1,0,3,12};        moveZeroes(a);       for(int i=0;i<a.length;i++){           System.out.print(a[i]+" ");       }    }    public static void moveZeroes(int[] nums) {        //count是用来记录数组中有多少个0        int count=0;        for(int i=0;i<nums.length;i++){            if(nums[i]==0){               count=count+1;            }else{                nums[i-count]=nums[i];                nums[i]=0;            }        }    }}
时间: 2024-10-09 10:20:31

移动0元素的相关文章

找第一个非0元素的位置

DATA SEGMENTARR DB 0,0,34H,56H,89H,0CNT EQU $-ARRRES DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEGIN: MOV AX,DATA MOV DS,AX XOR AX,AX MOV CX,CNT MOV BX,0NEXT: CMP ARR[BX],0 JNZ NEXT1 INC BX LOOP NEXT JNZ EXIT ;如果ZF不等于0即相比都不相等 NEXT1: MOV RES,BLEX

C语言 &#183; 删除数组0元素

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)5 3 4 0 0 2样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数)33 4

将矩阵中0元素所对应的行列都清零

编写一个算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零. void setZeros(int **matrix, int lrow, int lcol) { bool *row = new bool[lrow]; bool *column = new bool[lcol]; //记录值为0的元素所在的行索引和列索引 for (int i = 0; i < lrow; i++) { for (int j = 0; j < lcol; j++) { if (matrix[i][j] ==

Python中怎样统计两个向量对应位置的非0元素个数??

首先看看矩阵中.A操作的结果 1 >>> a=mat([[1,2,3],[2,3,0]]); 2 >>> a 3 matrix([[1, 2, 3], 4 [2, 3, 0]]) 5 >>> a.A 6 array([[1, 2, 3], 7 [2, 3, 0]]) 8 >>> shape(a) 9 (2, 3) 10 >>> shape(a.A) 11 (2, 3) 12 >>> type(a)

C 不改变顺序,原址剔除数组中的0元素

#include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <time.h> #define NUM_CNT 10000000 #define FILE_NAME "num.txt" void genNumber() { int i = 0; int *arr = (int*)malloc(sizeof(int) * NUM_CNT); for(;i < N

给定数组,去掉0元素后将剩下的元素赋给新的数组

编程实现给定数组,将数组中值为0的项去掉存入新的数组. package com.liaojianya.chapter1; /** * This program demonstrates the way to remove zero from old array and insert into new array. * @author LIAO JIANYA * 2016年7月21日 */ public class RemoveZero { public static void main(Stri

谷歌笔试题&mdash;&mdash;排序,只允许0和其他元素交换

2.2 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序. 这题有一个隐含条件:即数组元素是连续的,即0--n-1,当你排好序后,你会发现数组元素和该元素的下标是相等的. 思路:以数组2 0 3 1为例 1.首先a[0]=2,按照上述条件它应该放在a[2]的位置上.因为只允许0元素和其他元素的交换.所以不能直接交换a[0]和a[2],所以将0元素和a[2]互换,得到2 3 0 1,然后就可以把a[0]=2和a[2]=0互换了,得到0 3 2 1 按照这个思

[LeetCode283]Move Zeros将一个数组中为0的元素移至数组末尾

题目: Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements. For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0]. Note:

找出矩阵中含有0最多的一行(find the longest row of zero)

对于一个n*n的矩阵,其中只包含有0,1两种元素且,所有的0都在1之前,请找出矩阵中0最多的一行.(Given an N-by-N matrix of 0s and 1s such that in each row no 0 comes before a 1, find the row with the most 0s in O(N) time.) 初看这题,想到的算法就是每一行都设置一个计数器,记录每行的0的个数,然后找出最大值即可(暴力解法). 算法实现: int* find_the_lon