算法详解
业余码农AmazingJ
抖音全干攻城狮
展开
-
图解!24张图彻底弄懂九大常见数据结构!
数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。常用的数据结构可根据数据访问的特点分为线性结构和非线性结构。线性结构包括常见的链表、栈、队列等,非线性结构包括树、图等。数据结构种类繁多,本文将通过图解的方式对常用的数据结构进行理论上的介绍和讲解,以方便大家掌握常用数据结构的基本知识。本文提纲:1数组数组可以说是最基本最...原创 2020-05-24 22:23:36 · 33088 阅读 · 10 评论 -
面试高频算法详解 | 栈与队列篇
面试高频算法详解 | 栈与队列篇在互联网招聘的面试环节中,手撕算法环节往往会与数据结构的考察相结合。各种经典的算法都离不开常用数据结构的支持。在之前的分享中,我们对链表结构进行了分析,由浅入深的掌握了链表的基本操作和变形算法。今天,我们同样将从最基础的数据结构栈与队列出发,挖掘常见线性结构的处理思想。1 结构定义栈栈也叫堆栈,是一种在操作系统以及CPU指令设计中经常使用的数据结构。由于栈...原创 2020-02-26 23:35:40 · 462 阅读 · 1 评论 -
如何应对互联网大厂的手撕代码?
在互联网校招界,曾经流传着关于应届生面试互联网大厂的一个传说。“传说某个冕世冠打开视频聊天的窗口时,窗口那头正坐着位男人。他是宿舍里无论春夏秋冬都穿着同一件格子衬衫的唯一的人。他面容温和,满面油光,略微凹陷的眼窝似乎刚刚熬了几个通宵,稍稍靠后的发迹线展露出绝顶的智慧。穿的虽然是衬衫,但却光鲜亮丽,一点没有水洗多年而产生的褶皱和破败。他对人说话,总是满口的性能优化最优解时间空间复杂度,叫人半...原创 2020-02-23 21:15:51 · 4091 阅读 · 0 评论 -
面试经典算法-回文数判断,最长回文子串
01 回文数Leetcode 09 回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。比如20200202就是一个回文数。判断回文数有三种解法:1 一般解法将整数转为字符串,然后将字符串分割为数组,通过循环数组的一半长度进行判断对应的元素是否相等。(代码略)2 除法操作通过取整和取余操作获得整数中对应的数字进行比较。举个例子:2020...原创 2020-02-03 16:18:17 · 1127 阅读 · 1 评论 -
面试经典算法-链表反转、链表合并等
01 认识『链表』链表的结构十分简单,其本身是一种线性的存储结构,通过物理地址不连续的节点相连接成链。最简单的单链表只包含一条链,并且每一个节点包括两部分内容,数据元素和下一个节点的地址。因此可通过已知节点访问它的下一个节点。相比于数组而言,由于链表不必须按顺序存储,因而在插入的时候可以达到O(1)的复杂度,一般而言比数组的效率要高得多;但是查找一个节点或者访问特定编号的节点则需要O(n)的...原创 2020-01-31 20:43:29 · 1879 阅读 · 0 评论 -
LRU算法原理和实现
01 题目介绍题目描述:leetcode 146 LRU缓存机制中等难度运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作:获取数据 get 和写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其...原创 2020-01-11 20:52:13 · 520 阅读 · 0 评论