数据结构与算法
未读
排序算法——冒泡排序
什么是冒泡排序 冒泡排序的英文Bubble Sort,是一种基础的交换排序。 这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。 举个例子,将一个无需数列5, 8, 6, 3, 9, 2, 1, 7,从小到大排序 排序流程图 最外层的 for 循环每经过一轮,剩余
数据结构与算法
未读
力扣学习笔记——插入排序
什么是插入排序 插入排序就像扑克牌中,我们习惯将抓到的牌进行排序,每次摸一张牌,就将它插入手上已有的牌中合适的位置,逐渐完成整个排序。 交换法插入排序 交换法:在新数字插入过程中,不断与前面的数字交换,直到找到自己合适的位置。 </
数据结构与算法
未读
力扣学习笔记——283. 移动零
解题思路 这题主要考察的是对题目的理解,使用双指针,什么时候交换? 当数字不为0时,进行交换 通过把不为0的数字移到左边,就可以实现题目效果,图解如下: 实现代码 class Solution {
public void
数据结构与算法
未读
力扣学习笔记——328. 奇偶链表
解题思路 使用了链表交换的概念,引入的temp节点作为链表交换并确定交换起始位置。 图解: 实现代码 class Solution {
public ListNode swapPairs(ListNode head)
数据结构与算法
未读
力扣学习笔记——138. 随机链表的复制
解题思路 使用递归回溯的特性,可以直接将一个新结点完美拼接,不论是否初始化。 图解: 实现代码 class Solution {
Map<Node, Node> cacheNode = new HashMap<>();
数据结构与算法
未读
力扣学习笔记——430. 扁平化多级双向链表
解题思路 本题主要考验的是DFS(深度优先遍历) 懒了,自己拖着看吧。。。 图解: 实现代码 /*
// Definition for a Node.
class Node {
public int val;
public Node prev;
public Node nex
数据结构与算法
未读
力扣学习笔记——142. 环形链表 II
解题思路 这题的思路可以说是建立在环形链表 在找到循环位置后,将slow回到head,然后查找 fast 和 slow 相遇的位置,这样就是环的入口了 详情参考:https://leetcode.cn/problems/linked-list-cycle-ii/solutions/12616/lin

