
算法
算法
JAVA探索
对知识的贪婪是我前进的动力
展开
-
数据库单个字段保存多种组合状态的算法设计
需求有0,1,2,3四种使用场景,一条数据可以支持四种场景的组合场景。要求给出一个场景n,查出支持场景n的所有数据。分析首先数字占用空间最小,使用一个二进制超过4位的数来存储支持的场景。四位分别代表一个场景,1表示支持,0表示不支持。解决方式1数据量小不适用索引接收到场景值n后,将1左移(<)n位得到值m,与字段进行&运算,得到的值如果等于m,则命中数据。场景值n = 1将1左移n位 得到 m=0000 0010数据库中的字段 x=0000原创 2020-11-03 20:49:07 · 1167 阅读 · 2 评论 -
算法题汇总
如何设计一个打印整棵树的打印函数 求二叉树最宽的层有多少节点 设一个节点包含父节点、左右节点三个指针,给出一棵树上的节点X,找出X的后继节点(中序的下一个节点,前驱结点是上一个中序节点)。 上题:中序遍历 根节点凹 ...原创 2020-07-21 22:00:53 · 165 阅读 · 0 评论 -
leetcode 146 LRUCache
运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶:你是否可...原创 2020-06-19 15:19:29 · 139 阅读 · 0 评论 -
算法学习笔记
排序算法的特点选择排序:每次都会把当前范围里的最小的元素选择出来放到范围前一个位置,不断往后缩小这个范围。冒泡排序:每次排序都会把当前范围最大的元素冒到当前范围的最顶端,不断往前缩小这个范围。插入排序:每次排序都会将范围之外的下一个元素插入到当前范围重新排序,不断插入下一个元素。...原创 2020-06-12 11:06:45 · 259 阅读 · 0 评论