18 如何从一个数组中移除重复的元素

两种方法

(1) 使用LINQ
(2) 使用List



        static void RemoveDups(string[] myStringArray)
        {
            // LINQ
            string[] str = myStringArray.Distinct().ToArray();


            // Array to List to Array
            List<String> myStringList = new List<string>();

            foreach (string s in myStringArray)
            {
                if (!myStringList.Contains(s))
                {
                    myStringList.Add(s);
                }
            }

            string[] newArray = myStringList.ToArray();
            Console.ReadLine();
        }


在 C 语言中删除数组中的重复元素通常涉及到排序和遍历两个步骤。这里有一个基本的示例,展示了如何通过使用冒泡排序算法并利用临时数组来完成这个过程: ```c #include <stdio.h> // 删除数组中的重复元素并返回新的长度 int removeDuplicates(int arr[], int n) { if (n == 0 || n == 1) return n; // 如果数组为空或只有一个元素,直接返回 int temp[n]; // 创建临时数组 int j = 0; // 用于新数组的索引 // 冒泡排序,同时比较并移除重复项 for (int i = 0; i < n - 1; i++) { if (arr[i] != arr[i + 1]) { // 如果当前元素与下一个元素不同 temp[j++] = arr[i]; // 将它放入临时数组 } } // 将最后一个未检查的元素添加到结果数组中,如果需要的话 if (arr[n - 1] != temp[j - 1]) temp[j++] = arr[n - 1]; // 返回新数组的实际长度 return j; } // 测试函数 int main() { int arr[] = {1, 2, 2, 3, 4, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); int new_len = removeDuplicates(arr, n); printf("数组中的重复元素已删除,新的长度为 %d:\n", new_len); // 输出处理后的数组 for (int i = 0; i < new_len; i++) printf("%d ", temp[i]); return 0; } ``` 在这个例子中,我们首先对原始数组进行冒泡排序,然后将非重复元素复制到临时数组。最后,返回临时数组的新长度作为处理后的数组长度。 注意:这种方法会改变原数组,如果你不想改变原数组,可以创建一个新的动态数组或使用其他数据结构(如链表)来实现。另外,这只是一个简单的实现,对于大数据集,更高效的解决方案可能是使用哈希集合(如 `std::unordered_set`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值