首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
若离
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
Hash 冲突的一般解决方案与字符串查找中 hash 的使用
将每一项存在数组中,通过下标来索引。这种实现的方式问题在于: 使用hash函数。 线性增长。选取h(k,i)=(h'(k)+i)mod m,其中h'(k)为一个可行的hash函数,这种场景下它是能够去遍历所有的存储数组的位置,但是这种方式存在一个问题,随着已经存储的数据越多,需…
PHP面试:尽可能多的说出你知道的排序算法
本文适合对于排序算法不太了解的新手同学观看,大佬直接忽略即可。因为考虑到连贯性,所以篇幅较长。老铁们看完需要大概一个小时,但是从入门到完全理解可能需要10个小时(哈哈哈,以我自己的经历来计算的),所以各位老铁可以先收藏下来,同步更新在Github,本文引用到的所有算法的实现在这…
数据结构和算法面试题系列—二叉堆
本文要描述的堆是二叉堆。二叉堆是一种数组对象,可以被视为一棵完全二叉树,树中每个结点和数组中存放该结点值的那个元素对应。树的每一层都是填满的,最后一层除外。二叉堆可以用于实现堆排序,优先级队列等。本文代码地址在 这里。 使用数组来实现二叉堆,二叉堆两个属性,其中 LENGTH(…
数据结构和算法面试题系列—二叉树基础
在说二叉树前,先来看看什么是树。树中基本单位是结点,结点之间的链接,称为分支。一棵树最上面的结点称之为根节点,而下面的结点为子结点。一个结点可以有0个或多个子结点,没有子结点的结点我们称之为叶结点。 二叉树是指子结点数目不超过2个的树,它是一种很经典的数据结构。而二叉搜索树(B…
[算法总结] 17 题搞定 BAT 面试——链表题
链表是面试过程中经常被问到的,这里把剑指offer 和 LeetCode 中的相关题目做一个汇总,方便复习。 1. 在 O(1) 时间删除链表节点 题目描述:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路:常规的做法是从链表的头结点开始遍历…
什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?
当多个线程去访问某个类时,如果类会表现出我们预期出现的行为,那么可以称这个类是线程安全的。 操作并非原子。多个线程执行某段代码,如果这段代码产生的结果受不同线程之间的执行时序影响,而产生非预期的结果,即发生了竞态条件,就会出现线程不安全; 修改不可见。读线程无法感知到其它线程写…
HashMap之元素插入
和HashTable类似,采用数组+单链表形式存储元素,从jdk1.8开始,增加了红黑树的结构,当单链表中元素个数超过指定阈值,会转化为红黑树结构存储,目的就是为了解决单链表元素过多时查询慢的问题。 和HashTable不同的是,HashMap是线程不安全的,方法都未使用syn…
看图轻松理解数据结构与算法系列(B+树)
已删!