算法
文章平均质量分 90
梳碧湖的敲键人
学如逆水行舟,不进则退。心似平原跑马,易放难收。
展开
-
Least Recently Used ----- (LRU)
catch其实就是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。广义上的Cache指的是位于速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。实现LRU Cache的方法和思路很多,但是要保持高效实现O(1)的put和get,那么使用双向链表和哈希表的搭配是最高效和经典的。使用双向链表是因为双向链表可以实现任意位置O(1)的插入和删除,使用哈希表是因为哈希表的增删查改也是O(1)。主要是通过以上链表和哈希表进行操作的。原创 2022-10-03 19:09:45 · 792 阅读 · 0 评论 -
数位dp + 记忆化搜索
2.还是同样的上面的题,对于上面题目我们发现,如果说此时遇到了11333这个数字,进行遍历完,然后继续往后遍历,就肯定会遍历到12333这个数字,此时我们其实可以当12333这个数字遍历到123前三位的时候就可以将这个数据是否为正确的数进行返回了,因为后面是不管出现什么情况,都已经在113?对于上题,如果说我们只是通过暴力遍历的方法,那么在进行操作的时候,要取到每一个数,然后对这个数字进行去位,然后判断的话,那么就会用很长的时间,在一些题目中直接就超时了,那么我们这时就应该想到通过数位dp的方法进行解决。原创 2022-10-02 18:19:11 · 1285 阅读 · 0 评论 -
算法之路-------贪心算法
②:因为股票的价格是起伏的,所以我们找到最低点买入,最高点卖出,而我们可以通过看这个股票的价格是否是在继续涨价而判断我们是否要卖这个股票,但是这样的算法实现起来会很困难,所以我们使用的是如果当前的股票的价格比我们买股票的时股票的价格大,就直接卖出。③:通过②了解到,我们卖股票的时候只要当前股票价格比我们买入的股票价格大,我们就卖出,然后将买入的股票定位为当前卖出时的股票,而如果买入的股票价格大于当前股票的价格,则当买入的股票定位为当前的股票价格。(说白了也就是假买假卖的思想)但是这样实现的会比较简单。原创 2022-08-25 16:24:10 · 207 阅读 · 0 评论 -
算法之路-------回溯算法
而递归就是对当前的处理进行递归,也就是如上面查找节点,我们对每个节点的左右子节点都进行查找,这样查找的就是全树的节点,并且它的查找方式是从节点开始,一致到最左边的一个节点,也就是遍历的时候,直接一开始搜索到二叉树的最底层,然后开始往上回溯(也就是回溯的官方定义,如果说我们遍历的这个节点是根节点或者是空节点,那么就代表此次递归到头了,要返回上去,由上一层再选择另外一个子节点进入,如果说另外一个子节点都已经被使用了,那么就继续往上走就证明此路不通了,要继续向上返回找通路)而这种搜索方式和回溯的很像。...原创 2022-07-30 19:29:31 · 1248 阅读 · 0 评论 -
算法之路-------差分数组
针对数组中连续的大量数据进行修改的问题,如果我们对每个数据都进行依次修改,对于一些少量的数据的修改(例如:1~100这些的),修改的时候我们发现速度貌似还是很快的,但是一旦修改的连续数组中的数量上万了,那么修改的速率就明显下降了。所以:针对这样的情况,就出现了差分数组。1.差分数组的概念:①差分数组:其实也就是一个额外的数组(说白了,就是为了挽回时间效率而利用空间去开辟一个数组帮我们更好的去管理一些数据),这个数组是为要改动的目标数组进行数据管理的。②差分数组与要管理数组的关系:假设要管理的数据为a,差分数原创 2022-07-21 23:04:00 · 6303 阅读 · 2 评论 -
算法之路-------KMP算法
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2022-05-24 18:24:22 · 161 阅读 · 0 评论