标签: 算法 - STEMHA's Blog

STL 算法整理

标准库中常见的函数与头文件

使用栈实现的队列

算法思想

无序数组排序后的最大相邻差

解法1:

环状链表判断算法

判断该链表是否有环

  1. 采用两个指针,一个用来遍历,一个用来从头到当前遍历位置的数据对比。
    思想:比较元素是否出过;
    复杂度:时间O(n^2),空间O(1)
  2. hash表的方法,记录元素,一旦在hash表中出现过,就证明有环
    复杂度:时间O(n),空间O(n)
  3. 双指针类型方法:两个指针p1和p2,让它们同时指向这个链表的头节点。然后开始一个大循环,在循环体中,让指针p1每次向后移动1个节点,让指针p2每次向后移动2个节点,然后比较
    两个指针指向的节点是否相同。如果相同,则可以判断出链表有环,如果不同,则继续下一次循环。
    思想:追及问题,让快的先跑,如果有环,快的绕一圈后肯定会追上慢的。
    复杂度:时间O(n),空间O(1)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×