算法与数据结构
文章平均质量分 56
r_martian
这个作者很懒,什么都没留下…
展开
-
【算法】LRU置换算法
void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。进阶:你是否可以在 O(1) 时间复杂度内完成这两种操作?原创 2024-09-01 09:33:39 · 348 阅读 · 0 评论 -
Go map底层结构实现原理
map结构是一种比较常用的数据结构,存储k/v映射关系集合,根据key能够快速的查找对应的v。go的map是基于hashtable实现,冲突解决采用拉链法map 底层实现结构包含hmap和bmap两个,下面详细说一下(注go.1.17.1版本)hmap结构// A header for a Go map.type hmap struct { count int //元素个数 flags uint8 //状态标记 B uint8 .原创 2022-01-24 11:15:33 · 1272 阅读 · 0 评论 -
【算法】二叉树层序遍历
层序,即按层,从左到右输出,思路是queue实现bfs即可/** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __construct($val = 0, $left = null, $right = null) { *原创 2021-05-06 09:35:07 · 83 阅读 · 0 评论 -
【深度】动态规划解决背包类问题
动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法1 原理问题的最优解如果可以由子问题的最优解推导得到,则可以先求解子问题最优解,再构造原问题的最优解;若子问题有较多的重复出现,则可以自底向上从最终子问题向原问题逐步求解动态规划在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。比如背包问题(Knapsa原创 2020-06-09 23:00:28 · 276 阅读 · 0 评论 -
【深度】带你读懂一致性哈希算法
一、传统哈希算法传统的哈希表通常使用下面的方法将key映射到数组的索引(index):hash = hashFunc(key)index = hash % arraySize这种方法的不足之处是当arraySize发生改变后,所有的key都需要重新映射(remapped),因为索引的值是对arraySize求余运算获得的。这种技术可以用于把应用程序的数据分散存储到多个数据库中,从而实现...原创 2019-11-17 09:55:25 · 489 阅读 · 0 评论 -
【算法】二分查找
二分查找是比较常用且高效的查找算法,原理是给定一个有序数组和待查找target,利用分治思想进行搜索。 默认数组是升序,时间复杂度O(logn),空间复杂度O(1)<?php #二分查找 function BinarySearch(Array $arr, $target) { $length = count($arr); if (!is_...原创 2018-07-08 09:42:49 · 226 阅读 · 0 评论 -
算法时间复杂度和空间复杂度
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时...转载 2018-08-29 11:01:04 · 409 阅读 · 1 评论 -
scrapy xpath和css用法详解
学习scrapy框架,根据页面抽取需要的数据,xpath,css必须要知道! 一、Xpath基本语法1、常用的路径表达式: 表达式 描述 实例 nodename 选取nodename节点的所有子节点 //div / 从根节点选取 /div // 选取所有的节点,不考虑他们的位置 //div . 选取当前节点 ....转载 2019-07-18 08:11:22 · 508 阅读 · 0 评论