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; } } |
分类:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了