leetcode-第26题-删除排序数组中的重复项

数组-6-LeetCode 26题-删除排序数组中的重复项 LeetCode 26题 -> 删除排序数组中的重复项 1. 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 注意:不要使用额外的数组空间,必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例: nums = [1,1,2], 返回 2, 原数组 nums 的前两个元素被修改为 1, 2。 nums = [0,0,1,1,1,2,2,3,3,4], 返回 5, 原数组 nums 的前五个元素被修改为 0 阅读详情

博主并没有什么算法基础,所以写的不好,勿喷,抛砖引玉,欢迎交流,感谢。 

//给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 
// 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
// 示例 1:
// 给定数组 nums = [1,1,2],
//函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
//你不需要考虑数组中超出新长度后面的元素。
// 示例 2:
// 给定 nums = [0,0,1,1,1,2,2,3,3,4],
//函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
//你不需要考虑数组中超出新长度后面的元素。
// 说明:
// 为什么返回数值是整数,但输出的答案是数组呢?
// 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
// 你可以想象内部操作如下:
// // nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
//int len = removeDuplicates(nums);
//// 在函数里修改输入数组对于调用者是可见的。
//// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
//for (int i = 0; i < len; i++) {
//    print(nums[i]);
//}
// 
// Related Topics 数组 双指针 
// 👍 1626 👎 0


package com.zqh.leetcode.editor.cn;

import java.util.Arrays;

//Java:删除排序数组中的重复项
public class P26RemoveDuplicatesFromSortedArray {
    public static void main(String[] args) {
        Solution solution = new P26RemoveDuplicatesFromSortedArray().new Solution();
        int[] array = new int[]{0, 0, 1, 1, 1, 2, 2, 3, 3, 4};
        System.out.println(solution.removeDuplicates(array));
        System.out.println(Arrays.toString(array));
        // TO TEST
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int removeDuplicates(int[] nums) {
//          方案一:在忽略数组是有序的情况下,把没有的值计入set,计数器+1,相同的值出现,计数器不变,但又出现新的值,计数器保存了无相同值的最大数量
//            int j = 0;
//            Set<Integer> set = new HashSet<>();
//            for (int i = 0; i < nums.length; i++) {
//                if (!set.contains(nums[i])) {
//                    nums[j] = nums[i];
//                    set.add(nums[i]);
//                    ++j;
//                    continue;
//                }
//            }
//            return j;
//          方案二:因为数组是有序的,所以,我们拿到第一个数后,可以继续判断下一个数是否等于当前数,等于的话就要跳过下一个数,不等于的话就直接退出
            int j = 0;
            for (int i = 0; i < nums.length; i++) {
                for (int k = i + 1; k < nums.length; k++) {
                    if (nums[i] != nums[k]) {
                        break;
                    }
                    i++;
                }
                nums[j] = nums[i];
                ++j;
            }
            return j;
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}

 

LeetCode 参考 Java版本 LeetCode 400题目 Java版本 (LeetCode is the platform to help you enhance your skills, expand your knowledge and prepare for technical interviews.) 立即下载

相关推荐

电赛综合测评题练习(一)-(与2013年电赛综合测评要求类似)

电赛综合测评题练习 文章目录电赛综合测评题练习前言1. 波形发生器1.1 题目说明1.1.1 可用器件1.1.2 设计要求1.1.3 设计方案论证1.2 仿真电路设计1.2.1 脉冲波发生器电路1.2.1.1 方案介绍1.2.1.2 理论分析与计算1.2.1.3 电路系统设计1.2.1.4 仿真方案与仿真测试结果1.2.2 锯齿波电路1.2.2.1 理论分析与计算1.2.2.2 电路系统设计1.2.2.3 仿真方案与仿真测试结果1.2.3 正弦波I电路1.2.3.1 理论分析与计算1.2.3.2 电路系

daydayup!的博客 3万+

Leetcode刷题-(26~35)-Java

算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧。遇事不决,可问春风,春风不语,即是本心。我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可以啦,慢慢来,会很快,向前走,别回头。

nuist_NJUPT的博客 1275

YOLOv8验证的命令以及计算coco指标

好久不看代码,都不知道怎么验证的了,来记录一下。1、计算coco指标。

毕竟是Shy哥 1479

leetcode(力扣)之java第二十六天

第二十六题 二叉树的最大深度 104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 /** * Definition for a binary tree node. * public class TreeNode {

shuyupiaopiao的博客 233

大模型量化技术全解析:从INT8到GPTQ/AWQ,降低部署成本实战指南

模型量化是一种通过降低神经网络权重和激活值的数据精度(如从FP16降至INT8/INT4),从而大幅减少模型内存占用和计算开销的核心模型压缩技术。其原理基于线性变换,将高精度浮点数映射到低精度整数表示,在硬件层面能利用专用低精度计算单元实现显著加速。这项技术的核心价值在于解决了大模型(如千亿参数LLM)部署时面临的高昂显存成本和推理延迟问题,使其能在消费级GPU和边缘设备上高效运行。当前,后训练量化(PTQ)因其无需重新训练的特性成为主流,衍生出GPTQ、AWQ、SmoothQuant等多种方法,广泛应用于

weixin_33804582的博客 629

EtherCAT丢包问题深度解析:从原理到实战排查指南

在工业自动化与运动控制领域,实时通讯网络的稳定性是系统可靠运行的基石。EtherCAT(以太网控制自动化技术)作为一种高性能工业以太网协议,其核心在于独特的“飞读飞写”机制和纳秒级的分布时钟同步,以实现多设备间的精准协同。然而,物理链路干扰、配置不当或硬件性能瓶颈都可能导致数据帧丢失,破坏时钟同步,进而引发伺服抖动、定位精度下降乃至生产线停机。本文聚焦于EtherCAT丢包这一典型故障,结合SSC(Slave Stack Code Tool)从站协议栈开发与实时系统调优等工程实践,系统阐述其成因、影响及一套

weixin_32050773的博客 341

LeetCode26【双指针】:删除排序数组中重复的数

//给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 // // 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 // // // // 示例 1: // // 给定数组 nums = [1,1,2], // //函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为...

baidu_34209307的博客 201

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

AI人人懂 927

双指针法去除重复数字整理

之前做题时也遇到过双指针解法,比如: 需要多层循环嵌套时,可以采用双指针法来减少复杂度。 得到链表倒数第n个元素时,可以使用快慢指针优化算法,只要快指针比慢指针快n就可以。 最近做了几道去除数组或链表中重复数字的题目,包括去掉所有重复数字,每个重复数字保留一个,每个重复数字保留两个等等。 LeetCode26: Remove Duplicates from Sorted Array LeetC...

qq_24367757的博客 927

RK3588开发笔记-spi扩展canfd芯片MCP2518FD调试笔记

在嵌入式系统开发中,CANFD(控制器局域网灵活数据速率)是一种广泛应用于汽车和工业自动化领域的通信协议。为了满足项目需求,我们在RK3588平台上通过SPI接口扩展了CANFD芯片MCP2518FD,之所以用spi进行canfd扩展,是为了解决原生RK3588原生can不够稳定的问题(发送扩展帧有几率编程标准帧,RK3568/3588均存在该问题)。通过本次调试工作,我们成功地在RK3588平台上扩展了CANFD芯片MCP2518FD,并实现了与CAN总线的稳定通信。

flypig has a dream! 4222

全志T527-TP9930-Camera

TP9930 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 BT656/BT1120 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3232

Leetcode刷题(26.删除排序数组中的重复项

Leetcode刷题(26.删除排序数组中的重复项一.题目二.代码(C)三.提交记录四.备注 一.题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums...

Umbraner的博客 265

QGis二次开发 —— 5.2、基于qgis搭建离线地图服务并开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

QGis二次开发 —— 5.2、基于qgis搭建离线地图服务并开发雷达扫描、无人机飞行跟踪等(附:源码及工程)

221

LeetCode刷题笔记 [26] 删除排序数组中的重复项

/* * @lc app=leetcode.cn id=26 lang=c * * [26] 删除排序数组中的重复项 * * https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/ * * algorithms * Easy (42.00%) * Total Accepte...

AaronDew的博客 236

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LeetCode刷题记录——26 删除排序数组中的重复项

LeetCode刷题记录——26 删除排序数组中的重复项 一 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后的数组的新长度;不要使用额外的数组空间,必须在原地修改数组,使得在O(1)的额外空间的条件下完成 示例: 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素 2: 给定 nums = [0,0,1,1,1,2,2,

qq_42611498的博客 303

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【力扣刷题】26. 删除排序数组中的重复项

力扣上的第一篇题解

HeyRena的博客 253

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LeetCode刷题系列---26. 删除排序数组中的重复项

LeetCode刷题系列---26. 删除排序数组中的重复项一、题目示例二、解题vector的基本操作解题思路1本地代码提交代码需要注意解题思路2本地代码提交代码别人的题解三、写在最后 一、题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 做题可以直接...

u011636440的博客 677

LeetCode第26题,删除排序数组中的重复项

针对大厂算法面试,LeetCode第26题,删除排序数组中的重复项。

wangjiaqi333的博客 348

leetcode #26 删除排序数组中的重复项 | 刷题之路第一站——数组类相关问题

题号 26 题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 ...

m0_37714470的博客 192

LeetCode第26题思悟——删除排序数组中的重复项(remove-duplicates-from-sorted-array)

LeetCode第26题思悟——删除排序数组中的重复项(remove-duplicates-from-sorted-array) 知识点预告 双指针遍历数组的技巧; 题目要求 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 来源:力扣(LeetCod...

博采众长,自成一派; 367

LeetCode第26题:删除排序数组中的重复项

探讨了删除排序数组中重复项的多种方法,包括双指针法和辅助集合法,强调了双指针法的空间效率。

10年数据\经营分析经验,现任大厂数据分析负责人 936

解题思路-LeetCode第26题:删除排序数组中的重复项

解题思路-LeetCode第26题:删除排序数组中的重复项 题目描述: 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,1,1,2,

weixin_48153141的博客 185

LeetCode26题 删除排序数组中的重复项 C语言

LeetCode26题 删除排序数组中的重复项 C语言 删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,

weixin_45356258的博客 239

LeetCode 第26题 删除排序数组中的重复项

/*26. 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 ...

weixin_30701575的博客 302

26-leetcode第26题之删除排序数组中的重复项

题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nu...

weixin_41448328的博客 247
上一篇: leetcode-第28题-实现strStr()
下一篇: leetcode-第67题-二进制求和
97牛肉面
博客等级 码龄9年 54粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值