【六种方式】去除数组中的重复元素 | 您所在的位置:网站首页 › c语言删除数组中重复元素 › 【六种方式】去除数组中的重复元素 |
文章目录
📫1. 问题描述📌2. 思路探究📦3. 代码实现排序 + 双指针双层循环枚举 + 标志位数组覆盖计数排序判断
📫1. 问题描述
给定一个数组,判断数组中的元素是否重复? 给定为整型数组,或者字符串去重? 不使用集合类,怎么去重? 不使用集合类,怎么保证【稳定】去重? 📌2. 思路探究
去重复 Set集合排序 + 双指针(稳定或不稳定)枚举 + 标志位 📦3. 代码实现集合类直接在放入时判断是否包含即可 排序 + 双指针先对数组中的序列排序 [1, 1, 2, 3, 3, 5, 5, 5, 7, 8, 9, 9]然后双指针将不重复元素放入新的结果集res数组中 怎么保证稳定 使用归并排序(稳定排序)遇到重复元素,选取第一次出现的位置(保证稳定)1 i 1_i 1i、 1 j 1_j 1j,选 1 i 1_i 1i class Solution { /** * 【归并排序 + 双指针】 * * @param arr * @return */ public static int[] removeRepeat_sort(int[] arr) { mergeSort(arr, 0, arr.length - 1); int slow = 0, fast = 1; while (fast >> 1; int temp[] = new int[arr.length]; mergeSort(arr, low, pivot); mergeSort(arr, pivot + 1, high); merge(arr, low, pivot, high, temp); } private static void merge(int[] arr, int low, int pivot, int high, int[] temp) { int p1 = low, p2 = pivot + 1; int index = low; while (p1 |
CopyRight 2018-2019 实验室设备网 版权所有 |