数据结构与算法
文章平均质量分 95
手绘图 + 代码 助力您理解透彻数据结构与算法!
非科班大厂码农(同名公众号)
这个作者很懒,什么都没留下…
展开
-
手绘图系列 06 | 您一上Google就能接触到的Tries
手绘图系列 06 | 您一上Google就能接触到的Tries原创 2024-08-12 19:20:59 · 1072 阅读 · 0 评论 -
微软、Google、百度、腾讯等名企经典面试题
给大家整理了微软、Google、百度、腾讯这些企业比较常考察的面试题,大家可以尝试自己去解解,如果没有解出来再在网上搜索下,看看这些题的思路。原创 2024-08-11 13:32:20 · 498 阅读 · 0 评论 -
每个程序员都应该收藏的算法复杂度速查表
在参加面试时,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便能顺利通过面试。原创 2024-08-11 13:20:26 · 462 阅读 · 1 评论 -
手绘图系列 05 | 元素减半,快乐加倍的二叉搜索树
/ 根结点T key;// 关键字(键值)// 左孩子// 右孩子// 父结点。原创 2024-08-10 15:57:22 · 932 阅读 · 0 评论 -
手绘图系列 04 | 使用频率最高的”树“
到目前为止,我们主要介绍了一些线性的数据结构,如链表、队列、栈。在这些结构中,数据是有序的,而且顺序很重要。今天我们要跳出这个框框,进入一个更加“有挑战性”的领域——非线性数据结构。我们将从使用频率最高的”树“开始!记住!树是一种非常重要的非线性数据结构。原创 2024-08-10 15:24:06 · 1044 阅读 · 0 评论 -
这其实是个概率问题,一个例子揭秘 HyperLogLog 的高效计数技巧 !
桶记录遇到的最大连续零的数量。每次分配给一个桶的数字,如果连续零的数量超过桶中存储的数量,桶会更新。当然,我们没有减少规模的选项,因为我们不能告诉用户不要访问网站,但如果我们在显示的数字精度上做一些妥协,我们还是可以接受的。我在谷歌上搜索了互联网大厂是如何解决这个问题的,令人惊讶的是,这个看起来很简单的问题竟然是计算机科学中最著名的问题之一,称为“计数独特问题”。在计算出哈希所属的存储桶之后,我们将获得该哈希的最大尾随零,如果哈希的最大尾随零大于存储桶中存储的零,则更新存储桶(第 19-23 行)。原创 2024-08-05 16:35:08 · 775 阅读 · 0 评论 -
leetcode hot100 (面试复习用)
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]// 继续向左查找} else {// 查找目标值在数组中的结束位置// 继续向右查找} else {原创 2024-07-20 15:35:45 · 994 阅读 · 0 评论 -
手绘图系列 03 | 排队?还是不排队?
当我第一次了解后台作业和任务调度系统时,我才刚开始进入互联网行业还不到六个月。起初,我并不关注这一切是如何运作的。我只是依葫芦画瓢按照文档上的说明让它正常运行起来。原创 2024-07-08 08:16:29 · 745 阅读 · 0 评论 -
手绘图系列 01 | 链表到底是什么?
这里强调正确的顺序,如果我们不小心在步骤2之前执行步骤3,我们会陷入麻烦,原因是:如果先将头节点指针指向新节点,那么就丢失了与原链表的联系,新节点也找不到原链表的第一个节点,整个流程执行不下去了。列表的起点是对第一个真正节点(真正存放数据的节点)的引用,该节点称为 head,几乎所有的链表都必须有一个 head ,通常情况下,我们通过"head"节点来访问整个链表的内容,因为它存储了链表的起始位置信息,没有它,我们就会像个无头苍蝇不知道从哪里开始!这相当容易,因为我们只需要从头开始,不需要遍历整个列表。原创 2024-07-07 13:07:43 · 759 阅读 · 0 评论 -
手绘图系列 02 | 让人害怕的栈溢出
手绘图系列 01 | 链表到底是什么?原创 2024-07-07 08:58:28 · 1068 阅读 · 0 评论