返回

**六大妙招轻松玩转数组去重,从此告别重复烦恼**

前端

数组去重,在面试和工作中都是比较容易见到的问题,今天,我们一起学习常见的六种方法。方法的封装示例如下:

方法一:

function unique1(array) {
  return [...new Set(array)];
}

方法二:

def unique2(array):
  return list(dict.fromkeys(array))

方法三:

public static int[] unique3(int[] array) {
  Arrays.sort(array);
  int[] unique = new int[array.length];
  int count = 0;
  for (int i = 0; i < array.length; i++) {
    if (i == 0 || array[i] != array[i - 1]) {
      unique[count++] = array[i];
    }
  }
  return Arrays.copyOf(unique, count);
}

方法四:

vector<int> unique4(vector<int>& array) {
  sort(array.begin(), array.end());
  vector<int> unique;
  for (int i = 0; i < array.size(); i++) {
    if (i == 0 || array[i] != array[i - 1]) {
      unique.push_back(array[i]);
    }
  }
  return unique;
}

方法五:

function unique5(array) {
  const unique = [];
  for (const item of array) {
    if (!unique.includes(item)) {
      unique.push(item);
    }
  }
  return unique;
}

方法六:

def unique6(array):
  unique = []
  for item in array:
    if item not in unique:
      unique.append(item)
  return unique

每种方法都有其特点,可以根据具体情况选择最适合的方法。无论你是面试还是工作,掌握这些方法都能让你更加从容应对,展现出色的编程能力。

在学习完这些方法后,我们可以做一些练习来巩固理解,比如:

  1. 给定一个数组,请用至少三种方法去重,并比较它们的运行效率。
  2. 在实际项目中,你会如何选择数组去重的方法?
  3. 除了本文中提到的方法,你还知道哪些其他的数组去重方法?

希望这些方法对大家有所帮助。如果您有任何问题或建议,欢迎在评论区留言。