Algorithm
在一个字符串中取最大不重复子串(求长度和最长子串)
【无重复字符的最长子串】给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 解法一:滑动窗口 + 哈希表
Info
💡 滑动窗口:一个大小可变的窗口,左右两端方向一致的向前滑动(右端固定,左端滑动;左端固定,右端滑动)。可以想象成队列,一端 push,另一端…
链表取前一半翻转,再跟后一半连在一起
这道题可以拆分为两道算法题,分别是:[链表的中间结点] 和 [反转链表]。 借助快慢双指针 fast 和 slow,[快指针 fast ] 每轮走 2 步,[慢指针 slow ] 每轮走 1 步。
fast 的步数恒为 slow 的 2 倍,因此当快指针遍历完链表时…
算法是什么
[算法 algorithm] 是在有限时间内解决特定问题的一组指令或操作步骤。 [数据结构 data structure] 是计算机中组织和存储数据的方式。
数据结构设计是一个充满权衡的过程。
数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。…
[冒泡排序 bubble sort]
[冒泡排序 bubble sort] 通过连续地比较与交换相邻元素实现排序。这个过程就像气泡从底部升到顶部一样。 冒泡过程可以利用元素交换操作来模拟:从数组最左端开始向右遍历,依次比较相邻元素大小,如果 “左元素> 右元素” 就交换它俩。遍历完成后…
[二分查找 binary search]
[二分查找 binary search] 是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮减少一半搜索范围,直至找到目标元素或搜索区间为空为止。 Important
❓ 给定一个长度为 n 的数组 nums ,元素按从小到大的顺序排列,数组不包含重复元素。请查找并返回…
[二叉树 binary tree]
[二叉树 binary tree] 是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着” 一分为二 “的分治逻辑。 二叉树的基本单元是节点,每个节点有:** 值、[左子节点 left-child node]引用、[右子节点 right-child node]** 引用。…
[数组 array] 和 [链表 linked list]
[数组 array] 连续空间存储 与 [链表 linked list] 离散空间存储 是两种基本的数据结构,分别代表数据在计算机内存中的两种存储方式,两者的特点呈现出互补的特性。 [数组 array] 是一种线性数据结构,其将相同类型元素存储在连续的内存空间中。数组的长度是不…