
数据结构+算法
数据结构与算法学习!
木子雷
正在努力进阶中的渣渣!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查找字符串中最长不含重复字符的子字符串,计算该最长子串的长度
前言:算法题:查找一个字符串中最长不含重复字符的子字符串,计算该最长子字符串的长度;下面将使用 滑动窗口 方法实现,并通过对滑动窗口算法一步步进行优化,使其空间和时间的消耗一步步降低;什么是滑动窗口?滑动窗口:一般是指 运行在一个大数组上的子数组,该大数组是一个底层元素集合 。例如:假设有大数组 [ a b c d b e f d n ] ,设定一个大小为 3 的小数组 为 滑动窗口 ;则存在下面的窗口:[a b c] [b c d] [c d b] [d b原创 2020-07-10 21:58:20 · 2221 阅读 · 0 评论 -
旋转链表?面试官你确定要让手写这个吗?
前言:今天练习了一道关于单链表的算法题 《旋转链表》,由于之前写过一篇 《单链表反转?面试官你确定要问这个吗?》 的文章,然后今天又碰到了这道有关单链表的算法,就想着再 “水篇文章” 吧(带引号的哈),可以证明我没偷懒,按时写作业了。嘿嘿 . . . . . . . . . 接下来,①、首先回忆下单链表的数据结构 ;②、详解描述下什么是旋转链表(题目描述); ③、图解旋转链表代码数据结构:1. 单链表的数据结构:单链表是一种线性结构,它是由一个个 节点(Node) 组成的。并且每个节点(N原创 2020-06-07 19:25:53 · 348 阅读 · 0 评论 -
链表反转?面试官你确定要让手写这个吗?
前言: 使用递归、遍历两种方式来实现单链表的反转;代码展示:@SuppressWarnings({ "rawtypes", "unchecked" })public class Node<T> { // 节点的数据域 public T value; // 节点的指针域 public Node next; // 构造方法 public ...原创 2019-08-18 14:54:09 · 470 阅读 · 0 评论 -
滑动窗口算法实现寻找字符串中不包含重复字符的最长子串
public class Test2 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); StringBuilder ss = new StringBuilder();//用于拼接字符串 String str = "as...原创 2019-05-21 17:46:22 · 620 阅读 · 0 评论 -
Java实现LRU缓存算法
最困难的事情就是认识自己!个人博客,欢迎访问!前言: 什么是LRU算法:LRU是Least Recently Used的缩写,即最近最久未使用,是一种操作系统中常用的页面置换算法。应用场景:知道了什么是LRU后,我们再来聊下它的使用场景;在工作中,对于Redis我们一定是比较熟悉的,它是一个内存数据库;因为它是内存数据库,并且内存的空间是有限的,如果Redis中数据量很...原创 2020-03-20 22:36:44 · 392 阅读 · 0 评论 -
Java使用Trie树算法实现敏感词替过滤、根据关键词自动联想
最困难的事情就是认识自己!个人博客,欢迎访问!前言:Trie树也称为字典树、单词查找树,最大的特点就是共享字符串的公共前缀来达到节省空间的目的了。然后可以根据它的公共前缀的特性来实现敏感词过滤、自动联想等功能。抽象出trie树的数据结构:1、首先来看下trie树的结构图:从上图可以归纳出Trie树的基本性质:①根节点不包含字符,除根节点外的每一个子节点都包含...原创 2020-03-18 15:12:41 · 2136 阅读 · 3 评论