美文网首页
手写常用算法代码1 - 去重

手写常用算法代码1 - 去重

作者: 執著我們的執著 | 来源:发表于2019-11-04 21:14 被阅读0次

去重算法模板 : 传入的数组长度>0,返回值为去重后的数组长度。
两种情况:

  • 若数组已经排序过,则去重相同元素;
  • 未排序过,则去重相邻相同元素

Code :

int unique(int *arrary, int arraySize)
{
  int i = 0;
  for (int j = 1; j < arraySize; ++j) {
    if (array[i] != array[j]) {
      i++;
      array[i] = array[j];
    }
  }

  return i + 1;
}

解析 : 双指针
不新增内存,在原数组上进行操作得到新数组,指针 i 是新数组标记,指针 j 是对旧数组进行标记处理


采用STL库提供的unqiue/erase函数可以达到同样的效果

nums.erase(unique(nums.begin(), nums.end()), nums.end())

LeetCode相关例题

相关文章

  • 手写常用算法代码1 - 去重

    去重算法模板 : 传入的数组长度>0,返回值为去重后的数组长度。两种情况: 若数组已经排序过,则去重相同元素; 若...

  • 知识点---不定时更新

    cookie\session\localstorage跨域webpack手写ajax手写bind排序算法css常用...

  • 前端常见的面试手写代码

    web 前端工程师在面试时,常常会被要去现场手写/机写代码。涉及的内容包括常用的排序算法、查找算法;JavaScr...

  • 手写KNN实践

    手写代码是算法最好的实现机制:

  • 算法(4)-快速排序 Quick Sort

    作为最常用和好用的排序方法, 快速排序是每个工程师必须随时能够手写出代码和解释其运行原理的算法 快速排序算法 快排...

  • web前端面试题@十二(数组去重,数组扁平化)

    一、数组去重 1、利用ES6 Set去重(ES6中最常用) 不考虑兼容性,这种去重的方法代码最少。这种方法还无法去...

  • 全面介绍9种常用的排序算法

    本篇给大家介绍几种软件工程中常用的排序算法 所有排序算法的核心的代码都在《常用排序算法核心代码》[https://...

  • 前端常见面试题(十)

    目录: 1,简述同步和异步的区别 2, 数组去重(手写代码) 3, 在JavaScript中什么是伪数组?如何将伪...

  • 算法

    排序算法有哪些?最快的排序算法是哪个?手写一个冒泡排序手写快速排序代码快速排序的过程、时间复杂度、空间复杂度手写堆...

  • 常用数组算法

    Array是js里的内置对象,也是我们最常用的一种,在这里我们整理一下常见的简单算法 1.数组去重 数组去重是面试...

网友评论

      本文标题:手写常用算法代码1 - 去重

      本文链接:https://www.haomeiwen.com/subject/pdsumctx.html