首页 > 其他分享 >移动零

移动零

时间:2024-01-30 23:14:10浏览次数:23  
标签:12 nums int 数组 283 移动

1、移动零(283)

283. Move Zeroes (Easy)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

说明:

  1. 必须在原数组上操作,不能拷贝额外的数组。
  2. 尽量减少操作次数。
//思路一:
//1、引入另外一个指针k,用于指向数组中非0元素(原有一个遍历数组的指针i),很显然k <= nums.length-1
//2、[0,k)中元素是非0元素,i指向非0元素,就与k指向的元素交换,这样保证元素的相对顺序
public void moveZeroes(int[] nums) {
	int k = 0;
	for(int i=0;i<nums.length;i++){
		if(nums[i]!=0){
			swap(nums,k++,i);
		}
	}
}

private void swap(int[] nums,int i,int j){
	int tmp = nums[i];
	nums[i] = nums [j];
	nums[j] = tmp;
}
//思路二:是对思路一的改进
public void moveZeroes(int[] nums) {
	int k = 0;
	for(int i=0;i<nums.length;i++){
		if(nums[i]!=0){
			if(i != k){
				swap(nums,k++,i);
			}else{
				k++;
			}
		}
	}
}

private void swap(int[] nums,int i,int j){
	int tmp = nums[i];
	nums[i] = nums [j];
	nums[j] = tmp;
}

参考:

标签:12,nums,int,数组,283,移动
From: https://www.cnblogs.com/i9code/p/17998182

相关文章

  • BIP移动端只能查看到自己的数据
    viewModel.on("beforeSearch",function(args){debugger;//根据用户ID查询员工IDvarproxykey1=cb.rest.DynamicProxy.create({ensure:{url:'/wuser/getCurrentUser',method:'POST',options......
  • EBYK103-300W 移动应急照明灯
    EBYK103-300W移动应急照明灯 移动电站适用范围:广泛应用于建筑施工、电力照明、应急管理、公安消防等场景,用途更广。产品特点:便携储能,随时便携出门无惧断电,支持AC/USB/车充接口输出大功率大容量轻巧便携兼容性强专业电源,兼容更广,可谓多种用电设备进行充电/供电多接口设计,用电无......
  • Vue3+Vant+Vite H5移动端开发(二)
    vue3项目创建使用vue创建项目命令npmcreatevue@latest基础配置配置IP和localhost打开项目,修改'package.json'文件下的‘scripts’配置--host0.0.0.0显示ip地址可以打开项目--open启动项目,在浏览器中自动打开"scripts":{"dev":"vite--host0.0.0.0......
  • 关于SortableJS在handle模式下移动端无法拖拽的解决办法
    原因个人项目使用到了这个库,PC操作好好的,移动端一看不行,然后去官方github-issues查看搜mobile的issue,发现大家也会这样。找了一圈看了下,应该是handle(句柄)模式下,库没有做事件监听导致的。解决办法要么换个库,要么在移动端的时候,取消句柄模式即可。constwrapper:HTMLElement=......
  • 移动端取证的应用分析
    Android(安卓)安卓主要是/data/data目录 iOS(苹果)苹果系统主要存在目录--/private/var用户应用数据目录 系统应用目录 ......
  • [word] word 中如何使图示中的文本框和对应连接箭头同步移动?
    下图左侧图示中,文本框"其他垃圾"与"有害垃圾""厨余垃圾""可回收物"属于同一层级,我们想把"其他垃圾"文本框往右拖动至"可回收物"文本框正下方(效果参考下图右侧图示),使排版更加整齐。但是在拖动过程中,"其他垃圾"文本框对应的红色连接箭头仍保持原地不动,不能跟随文本框一起移动。下面......
  • 移动硬盘数据恢复完整教程
    本篇是关于移动硬盘数据恢复的完整指南,包含数据恢复原理、常见数据丢原因、注意事项、恢复数据详细步骤、常见问题等方面,帮您快速掌握移动硬盘数据恢复相关技巧,及时挽救丢失的数据。移动硬盘数据恢复原理在当今的数字化时代,移动硬盘的便利性越来越受欢迎,它可以帮助我们携带数TB的数......
  • 移动硬盘数据恢复完整教程
    本篇是关于移动硬盘数据恢复的完整指南,包含数据恢复原理、常见数据丢原因、注意事项、恢复数据详细步骤、常见问题等方面,帮您快速掌握移动硬盘数据恢复相关技巧,及时挽救丢失的数据。移动硬盘数据恢复原理在当今的数字化时代,移动硬盘的便利性越来越受欢迎,它可以帮助我们携带数TB的数......
  • Unity_物体对象跟随鼠标移动360°旋转
    ///<summary>///对象旋转跟随鼠标移动///</summary>publicvoidObjectRotateFollowMouseMove(){if(Input.GetMouseButtonDown(0)){lastMousePoint=Input.mousePosition;}elseif(Input.Get......
  • [SDOI2019] 移动金币(阶梯博弈)
    题面一枚金币向左移若干格等价若干个空格向右移一个金币,终状态为所有空格在最右,转换为阶梯博弈阶梯博弈每个阶梯上有若干枚石子,每次操作将同个阶梯的任意石子向下移一个阶梯,不能操作者输等价对奇数阶梯做Nim博弈先手按Nim博弈操作。若对方移动偶数阶梯,则将对方移动石子继续下......