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

非严格递增排列 的数组 nums,意思是有序递增的,但是有相同的元素

我写的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
    }

  别人用的双指针:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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()函数:

1
2
3
4
5
6
7
8
9
10
11
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;
    }
}

  

posted @   yinghualeihenmei  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示