![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试常见算法
文章平均质量分 70
尽量用简单的话把一个算法说清楚
努力找工作的思周
这个作者很懒,什么都没留下…
展开
-
快排-外行都能看懂
快排-外行一看都懂 思想 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 举例 6,1,2,7,9,3,4,5,10,8 假如我们取第一个元素6为基准值,即数组中比6小的都在6左边,比6大的都在6右边。 即 3 1 2 5 4 6 9 7 10 8 然后我们把数组分成两部分 3 1 2 5 4和9 7 10 8 再执行上面的操作即可 下面就是重头戏了,这一原创 2021-03-25 22:19:04 · 79 阅读 · 0 评论 -
单链表翻转
01-单链表翻转 让我们思考一下,怎么让链表翻转呢,因为链表的存储方式不像数组,数组在内存中是连续的空间,因此数组只需要知道首地址+类型大小*数组下标即可访问对应元素。但链表不同,它的每一个结点内存不一定是连续的,因此给你一个结点你唯一能知道的就是当前结点的值和下一个结点的地址。 假设我们现在拥有一个结点current,那我们还可以知道下一个结点next(current->next) 那似乎问题很简单,我们只需要遍历一遍链表,每次都让当前结点的下一个的地址指向上一个结点不就完成链表翻转了吗。问题是上一原创 2021-03-25 16:12:16 · 59 阅读 · 0 评论 -
K个一组翻转链表-java
02-K个一组翻转链表 将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表 如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样 你不能更改节点中的值,只能更改节点本身。 要求空间复杂度 O(1) 例如: 给定的链表是1→2→3→4→5 对于 k = 2 , 你应该返回 2→ 1→4→ 3→ 5 对于 k = 3, 你应该返回 3→2→1 → 4→ 5 类比链表翻转,此题中需要将链表进行分组,然后进行一一翻转,而且有参数k,我能想到的是先探测再翻转 此题唯一的难点就是分组后还需要将每一组连起来原创 2021-03-25 16:05:05 · 337 阅读 · 0 评论