283 Move Zeroes 移动零
给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。
例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。
注意事项:
必须在原数组上操作,不要为一个新数组分配额外空间。
尽量减少操作总数。
详见:https://leetcode.com/problems/move-zeroes/description/
Java实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Solution { public void moveZeroes( int [] nums) { for ( int i= 0 ,j= 0 ;i<nums.length;++i){ if (nums[i]!= 0 ){ swap(nums,i,j++); } } } private void swap( int [] nums, int i, int j){ int tmp=nums[i]; nums[i]=nums[j]; nums[j]=tmp; } } |
C++实现:
1 2 3 4 5 6 7 8 9 10 11 12 | class Solution { public : void moveZeroes(vector< int >& nums) { for ( int i=0,j=0;i<nums.size();++i) { if (nums[i]) { swap(nums[i],nums[j++]); } } } }; |
参考:https://www.cnblogs.com/grandyang/p/4822732.html
标签:
LeetCode
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现