数据结构与算法
文章平均质量分 65
Java学习数据结构
老宋啊
加油吧
展开
-
排序算法总结
文章目录排序算法总结选择排序插入排序练习题LC147_对链表进行排序冒泡排序希尔排序练习题LC506_相对名次归并排序练习题LC88_合并两个有序数组剑指25_合并两个有序链表剑指52_数组中的逆序对问题快速排序单路快排双路快排三路快排练习题LC69_多数元素堆排序练习题LC23_合并K个升序数组排序算法总结情绪(稳定性)不稳定:快些选堆排序名称时间复杂度空间复杂度稳定性备注选择排序O(n^2)O(1)不稳定运行时间和输入无关;数据移动是最少的插入排序O(n^原创 2021-04-11 22:16:38 · 300 阅读 · 0 评论 -
算法面试40讲
文章目录算法面试40讲数组和链表堆栈和队列优先级队列哈希表树和二叉树二叉树的遍历递归与分治贪心算法BFS和DFS剪枝二分查找字典树位运算动态规划并查集LRU算法面试40讲极客时间《算法面试40讲》笔记数组和链表反转链表和判断链表是否有环LC24_两两交换链表中的结点public class Solution1 { /** * LC24:两两交换链表中的结点 * 示例:1,2,3,4 反转成 2,1,4,3 * 迭代 */ publi原创 2022-03-22 08:45:22 · 529 阅读 · 0 评论 -
《剑指Offer》第二版
文章目录思维导图正序版03 数组中重复的数字04 二维数组查找05 替换空格06 从尾到头打印链表07 重建二叉树09 两个栈实现队列10-I 斐波那契数列10-II 青蛙跳台阶问题11 旋转数组的最小数字12 矩阵中的路径13 机器人的运动范围14 剪绳子I14 剪绳子II15 二进制中1的个数16 数值的整数次方17 打印1到最大的n位数18 删除链表结点19 正则表达式匹配20 表示数值的字符串21 调整数组奇数位于偶数前面22 链表中倒数第K个节点24 反转链表25 合并两个有序链表力扣88 合并两原创 2021-07-07 09:42:02 · 1103 阅读 · 3 评论 -
LRU和LFU
LRU和LFULC156_LRU缓存题目:实现一个LRU示例:LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则原创 2022-03-04 17:31:49 · 235 阅读 · 0 评论 -
二分查找及其变种
文章目录二分查找及其变种标准二分四种变种查找第一个等于查找最后一个等于查找第一个≥查找最后一个≤二分查找及其变种标准二分初始化:int left = 0, right = nums.length - 1循环遍历:为什么是left<=right - 因为初始化[left,right]是两端闭区间,假如遍历结束是[left=right]=[2,2],说明至少还有一个数2是可以遍历到的,所以是left<=right才能保证全部数据被搜索过一遍;另外一个思维是由于初始条件是两原创 2021-08-05 15:06:45 · 215 阅读 · 0 评论