1、通过重新定义一个新的数组,然后将其重新赋值给nums数组,输出此时的index,该方法需要额外的内存
- class Solution {
- public int removeDuplicates(int[] nums) {
- int[] res = new int[nums.length];
- res[0] = nums[0];
- int index = 1;
- for( int i=1;i
- if(nums[i]!=nums[i-1]) {
- res[index] = nums[i];
- index++;
- }
- }
- for(int i=0;i
- nums[i] = res[i];
- }
- return index;
- }
- }
2、或者是使用双指针可以节省额外的内存空间
- class Solution {
- public int removeDuplicates(int[] nums) {
- int slow = 0;
- for(int fast=1;fast
- if(nums[fast] != nums[slow]) {
- slow++;
- nums[slow]=nums[fast];
- }
- }
- return slow+1;
- }
- }
其实两个不同的指针就可以得到两个不同的数组,只是原数组无法复原,并且要在彼此不相互干扰的情况下,才能正确用双指针解答
-
相关阅读:
记一次mysql事务并发优化
游戏引擎概述-Part1
CenterPoint 源码流程解读(二)
egg中使用Sequelize老报错?看了这篇相信你会有思路……
PackagesNotFoundError:学习利用报错信息找到解决方法
Perl6中的垃圾收集
第十届国家网络安全宣传周今日在全国范围内启动
python openai宠物名字生成器
安全文件传输如何进行管控,从而促进业务的有序发展?
Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案
-
原文地址:https://blog.csdn.net/weixin_43582743/article/details/133755763