目录:
1.Move Zeroes  - 数组0移到末尾 [顺序交换]
2.

一.Move Zeroes


题目概述:
Given an arraynums, 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, givennums = [0, 1, 0, 3, 12], after calling your function,nums should be[1, 3, 12, 0, 0].
Note:
        1.You must do this in-place without making a copy of the array.
        2.Minimize the total number of operations.


解题方法:

题意是把数组nums中0的元素后置,同时不能采用赋值数组。两种方法:
        1.遇到是0的元素从数组最后向前存储并移位,遇到非0元素从前存储;
        2.推荐:从前往后查找,不是0的元素前移,并计算0的个数,后面的全置0。

我的代码:
方法一:Runtime: 28 ms

void moveZeroes(int* nums, int numsSize) {int endNum;        //从后计数0int startNum;      //从前计数非0int temp;int i,j;i = 0;startNum = 0;endNum = 0;while( (i+endNum) < numsSize ) {if(nums[i]==0) {//依次前移for(j=startNum; j<numsSize-endNum-1; j++) { //j少一个数nums[j] = nums[j+1];}nums[numsSize-endNum-1] = 0;endNum++;}else {nums[startNum] = nums[i];startNum++;i++;}}
}

方法二:Runtime: 8 ms

void moveZeroes(int* nums, int numsSize) {int count;   //计算0的个数int i,j;int n;n = 0;count = 0;for(i=0; i<numsSize; i++) {if(nums[i]==0) {count++;}else  {nums[n] = nums[i];n++;}}//后置0for(j=0; j<count; j++) {nums[n] = 0;n++;}
}

(By:Eastmount 2015-9-20 晚上8半     http://blog.csdn.net/eastmount/ )

[LeetCode] Move Zeroes - 整数数组处理问题相关推荐

  1. 283. Move Zeroes(数组篇)

    //Java方法一 class Solution {public void moveZeroes(int[] nums) {if(nums==null) {return;//表示没有输出}//定义两个 ...

  2. Leetcode PHP题解--D68 283. Move Zeroes

    2019独角兽企业重金招聘Python工程师标准>>> D68 283. Move Zeroes 题目链接 283. Move Zeroes 题目分析 给定一个整数数组,将值为0的元 ...

  3. [东哥的leetcode刷题日记] leetcode 283 : Move Zeroes

    leetcode 283 : Move Zeroes 题目链接: https://leetcode-cn.com/problems/move-zeroes/ 难度: 简单 归类 : 数组操作 题目: ...

  4. LeetCode算法题1:判断整数数组是否存在重复元素

    文章目录 前言 一.题目描述 二.思路 1.暴力破解 2.空间换时间(有点像桶排序思想) 3,排序 总结 前言 本系列文章为leetCode刷题笔记,仅供参考. 一.题目描述 给定一个整数数组,判断是 ...

  5. leetcode:java.T018_4Sum---给定一个整数数组,找出a + b + c + d = target的唯一解,不能有重复元素组

    <span style="color:#ff4635">敬请关注博客,后期不断更新优质博文,谢谢</span> package leetcode.T018_ ...

  6. 【leetcode】给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff数对。

    给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...

  7. 【LeetCode】快排-无序整数数组中找第k大的数(或者最小的k个数)

    一个有代表性的题目:无序整数数组中找第k大的数,对快排进行优化. 这里先不说这个题目怎么解答,先仔细回顾回顾快排,掰开了揉碎了理解理解这个排序算法:时间复杂度.空间复杂度:什么情况下是复杂度最高的情况 ...

  8. LeetCode简单题之数组序号转换

    题目 给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号. 序号代表了一个元素有多大.序号编号的规则如下: 序号从 1 开始编号. 一个元素越大,那么序号越大.如果两个元素相等, ...

  9. LeetCode简单题之数组的度

    题目 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度. ...

最新文章

  1. sql获取一张表所有的字段_SQL语句19问
  2. 堆排序(基于完全二叉树)
  3. java stringutils_Java 笔记----- StringUtils 拼接字符
  4. using 关键字有两个主要用途
  5. c语言中如何让鼠标在一个窗口之外不能点击_Excel系列教程:如何自动填充单元格...
  6. docker pull理解误区
  7. jar包和war包差别
  8. 点石成金 访客至上的Web和移动可用性设计秘笈pdf
  9. 知乎到底什么是前后端分离?
  10. mysql schemata_SCHEMATA · xiaoboluo768/mysql-system-schema Wiki · GitHub
  11. Xcode8 10大新特性
  12. 虚拟服务器 emule,web服务器配置emule功能详解
  13. 为什么设置了面容ID,仍然需要输入密码解锁iPhone?
  14. 【有手就会系列】四步通过文字生成二次元小姐姐图片
  15. 计算机绘图图框实验报告,CAD实验报告DOC
  16. 微信商家收款码怎么申请,3分钟快速开通低费率商户方法
  17. 解决适配375像素宽度667像素高度移动端方法:推荐一款非常好用的px转rem单位的VSCode插件px to rem rpx (cssrem)
  18. layui数据表格分页无法正常显示
  19. 没有植入的内容就是TM在逗我
  20. 绝对值不等式解绝对值二次函数的最值_Simplelife_新浪博客

热门文章

  1. Linux VNC黑屏(转)
  2. nagios监控-多用户管理
  3. fhq_treap || BZOJ 3223: Tyvj 1729 文艺平衡树 || Luogu P3391 【模板】文艺平衡树(Splay)...
  4. [IOI2011]Race
  5. node.js 函数定义和调用
  6. Cogs 727. [网络流24题] 太空飞行计划(最大权闭合子图)
  7. mousedown(function(){ return false; })作用
  8. iOS高仿城觅应用客户端项目(开发思路和代码)
  9. 站立会议-2014-04-14
  10. 【转】托管函数的挂钩(完美版)