
算法
Chieflion
这个作者很懒,什么都没留下…
展开
-
二分法相关问题进阶(极小极大化二分查找)
面试的过程中二分真的一直在被问, “思路很简单,细节是魔鬼”,二分真的很重视细节。而且有问题看似和二分无关,实际上是完全可以用二分进行加速的。这里对二分问题的进阶进行汇总。很重要,面试的过程中被问到了。 LeetCode 875. 爱吃香蕉的珂珂 这道题在某大厂的三面中被问到了。 class Solution { public int minEatingSpeed(int[] piles, int H) { if(piles==null||piles.lengt...原创 2020-08-18 15:38:48 · 442 阅读 · 0 评论 -
二叉树总结-递归与非递归实现
二叉树相关算法主要考察的是递归、宽度优先搜索和广度优先搜索,很多问题都是前序、中序、后序和层序遍历的变形,遍历的递归与非递归实现都应该熟练掌握 遍历通常分为前序遍历、中序遍历、后序遍历、层序遍历四种情况。对于遍历方式只是打印顺序而已,所以四种遍历复杂度均相同。 1、二叉树的遍历 遍历的时间复杂度与空间复杂度 1.非递归遍历(辅助栈) 时间复杂度:O(N) 空间复杂度:O(N) 由于每个节点都要进栈和出栈,所以时间复杂度为O(N),同样空间复杂度也为O(N),N为结点数。...原创 2020-07-27 13:41:14 · 584 阅读 · 0 评论 -
查找与排序算法总结&及相关应用算法
Byte提前批二面中自己在二分查找的变形题中翻了车,导致现在还不知道面试是否会通过,面试结束后真的感觉无法原谅自己在这么简单的问题上翻车。本以为自己在算法的准备上还算充分,原来是自己好高骛远了,一直在看相对比较难的算法,而没有踏踏实实熟练掌握基础算法。从实习到面试,整个七月里一直被反复教做人 ,踏踏实实学习吧。 1 二分查找及其应用 二分查找的基本思想(二叉搜索树也应该算是二分查找的范畴) 二分查找的基本思想是:(设R[low,high]是当前的查找区间) (1) 首先确定该区间的中点位置: ...原创 2020-07-26 11:18:40 · 1031 阅读 · 0 评论 -
LRU算法应用以及LinkedHashMap底层
Redis和页面置换中都遇到了LRU,做项目的时候也吃了没认真看LinkedHashMap的亏,恰巧LRU和LinkedHashMap有着千丝万缕的联系,那就认真整理一下吧 1 使用场景 (1)操作系统中的页面置换算法,LRU是比较接近最优页面置换算法的一种算法; (2)redis中的淘汰策略中会在设置了过期时间或全局范围的key中依据LRU进行淘汰,以保证热key; (3)项目中的业务场景; (4) 面试常考。。。 2 LRU 算法 LRU 缓...原创 2020-07-21 10:40:19 · 268 阅读 · 0 评论 -
LeetCode算法总结-回溯法与深度优先搜索
S原创 2020-06-26 22:12:51 · 587 阅读 · 0 评论 -
华为笔试在线训练-DNA序列问题(时间复杂度O(n)目前存在的解题思路中时间复杂度最低)
题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。 给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。 牛客网链接 https://www.nowcoder.com/practice/e8480ed7501640709354db原创 2020-06-09 07:35:26 · 1103 阅读 · 0 评论