首页 > 编程语言 >c#删除有序数组中的重复项

c#删除有序数组中的重复项

时间:2024-05-05 18:45:29浏览次数:16  
标签:slow 删除 nums c# fast int Length 数组 public

我写的:

public int RemoveDuplicates(int[] nums) {
        int length=nums.Length;   
        int low=0;     
        for(int i=0;i<length;i++)
        {
            int num=nums[i];

              while(num!=nums[low])
              {
                nums[low+1]=num;
                low++;                                                                
              }             
        }
        return low+1;
    }

  别人用的双指针:

public class Solution {
    public int RemoveDuplicates(int[] nums) {
        if(nums.Length == 0){return 0;}
        int slow = 0, fast = 1;
        while(fast < nums.Length){
            if(nums[fast] != nums[slow]){
                slow = slow + 1;
                nums[slow] = nums[fast];
            }
            fast = fast + 1;
        }
        return slow + 1;
    }
}


链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/solutions/996194/kuai-man-zhi-zhen-26-shan-chu-you-xu-shu-8v6r/

  利用数组的distinct()函数:

public class Solution
{
    public int RemoveDuplicates(int[] nums)
    {
        //if(nums.Length <= 1) return nums.Length;
        var nums2 = nums.Distinct();
        int n=0;
        foreach (var item in nums2){nums[n++] = item;}
        return n;
    }
}

  

标签:slow,删除,nums,c#,fast,int,Length,数组,public
From: https://www.cnblogs.com/Dongmy/p/18173726

相关文章

  • AtCoder Beginner Contest 352
    AtCoderBeginnerContest352A-AtCoderLine给\(N,X,Y,Z\)判断是否\(\min(X,Y)\leZ\le\max(X,Y)\)。模拟。点击查看代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intn,x,y,z;signedmain(){ cin>>n>>x>>y>......
  • SystemVerilog -- 3.2 SystemVerilog foreach loop
    SystemVerilogforeachloopSystemVerilog数组是允许在单个变量中存储多个值的数据结构。循环仅用于遍历此类数组,并且是执行此操作的最简单和最简单的方法。foreachSyntax循环从0开始循环访问每个索引。如果循环中有多个语句,则必须像所有其他过程块一样用foreach和foreachbegi......
  • 基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
    1.算法运行效果图预览woa优化前      woa优化后    2.算法运行软件版本matlab2022a 3.算法理论概述      时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(ConvolutionalNeur......
  • 2024年13个最佳Scrum工具评测
    Scrum 管理工具有:PingCode、Jira、Trello、ZohoSprints、ActiveCollab、ProProfsProject、Scrumwise、ClickUp、Monday.com、QuickScrum、Yodiz、ScrumDo、nTask在过去几年中,Scrum方法论已成为敏捷项目管理的主要框架之一。使用Scrum,项目管理过程将变得更加灵活和透明,同时......
  • 06. C语言指针
    【指针】C语言使用数据名调用数据,数据名相当于C语言的直接寻址,直接寻址只能调用固定数据,而指针是间接寻址,指针存储了另一个数据的地址,使用指针调用数据时首先取指针存储的内存地址,之后使用此地址调用数据,使用间接寻址有如下几点优势:1.统一数据的调用方式,因为指针是调用数据的中间......
  • 程序员天天 CURD,怎么才能成长,职业发展的思考(2)
    接着上一篇:程序员天天CURD,怎么才能成长,职业发展思考上一篇写到了用年限来谈程序员的发展,在4-6年这个时间段需要做的一些事情,接着写这个时间段的。第4、5年时候,你可能会做一些关于基层管理工作。这个时期会遇到一些困难。这个时期,既要编写代码,又要做基层管理工作,你肯定很......
  • CSS 盒模型
    在css中,所有元素都被一个个的"box"包围着,理解这些盒子的基本原理,是实现用css实现精准布局,处理元素排列的关键.标准盒模型盒子模型的组成元素:content:内容区padding:内天成border:边框margin:外边距在标准盒模型中,盒的width/height指......
  • AtCoder Grand Contest 001
    D.ArraysandPalindrome如果两个字符要求相同就给它们连边,对于一个长度为\(x\)的回文串,\(x\)是偶数会连\(x/2\)条边,奇数会连\(x/2-0.5\)条边。\(a\)和\(b\)两个序列总和为\(2n\),要让\(n\)个字符相同至少连\(n-1\)条边,也就是奇数个数超过\(2\)时一定无解......
  • CISCN2023-华北-normal_snake
    就得审java。又更新了,因为我前面jar包导不进去,所以把它解压了导入的,然后环境正常了就想起来把这个打了。路由分析老规矩,先看看路由:/read路由下传参data,pyload不能包含!!,然后用了yaml来load传入的参数。稍作了解,这其实就是 SnakeYaml反序列化漏洞,禁用了yaml的常用头 !!......
  • AtCoder Beginner Contest 352题解
    AtCoderBeginnerContest352Time:2024-05-04(Sat)20:00-2024-05-04(Sat)21:40AAtCoderLine问题陈述AtCoder铁路线有$N$个车站,编号为$1,2,\ldots,N$。在这条线路上,有趟进站列车从$1$站出发,依次停靠$2,3,\ldots,N$站,有趟出站列车从$N$站出发,依次停......