
ACM__做了个总结
文章平均质量分 57
tjial
这个作者很懒,什么都没留下…
展开
-
实现LRU缓存机制
题目LRU 缓存机制,设计和实现一个 LRU(最近最少使用)缓存数据结构。LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存。get(key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回一个默认值。put(key, value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「key-value」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间时间复杂度要求O(1原创 2020-11-24 00:12:41 · 592 阅读 · 1 评论 -
总结-动态规划-01背包、完全背包
总结-动态规划-01背包、完全背包动态规划就是把大问题拆分成小问题,通过寻找大问题与小问题的递推关系,解决一个个小问题,最终达到解决原问题的效果。通过填写表把所有已经解决的子问题答案纪录下来,动态规划解决问题的核心就在于填表,表填写完毕,最优解也就找到。原创 2018-04-02 21:33:41 · 1192 阅读 · 0 评论 -
字典树Tire的一个小总结
前一段时间呢学习了一下字典树,发现字典树在解决某些问题上是非常方便的(与STL中的map有些相似的地方),下面是我对字典树做的一些总结,也不算做总结,写出了自己对字典树的一些了解而已。 字典树(Trie树),单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树或52叉树,数字的字典树是一个10叉树。Trie树的键由节点在树中的位置决定的,一个节点的所有子节点都有...原创 2018-04-26 21:24:04 · 1192 阅读 · 0 评论 -
大数阶乘
求一个数的位数求一个数的位数很简单,只需要循环除以10就可以了。但是如果求一个很大的一个数的位数呢,就比如说 100! 的位数,这个时候就无法正常进行求位数了首先知道一个数 10^x-1<=a<10^x;很明显,a的位数为x位;根据 (int)lg(10^x-1)<=(int)lg(a)<(int)lg(10^x)再进行化简一下得 x-1&lt原创 2018-04-26 21:39:59 · 835 阅读 · 0 评论 -
图的遍历方法——深度优先与广度优先
学习了那么长时间,也该做一下总结了。接下来就简单说一下我对搜索的理解吧。图的遍历主要有两种算法: 广度优先搜索(Breadth-First-Search)和深度优先搜索(Depth-First-Search)。那么就先来说一下深度优先搜索吧。深度优先搜索算法所遵循的搜索策略是尽可能“深”地搜索一个图。它的基本思想就是:首先访问图中某一起始顶点v,然后由v出发,访问与v邻接且未被访问的...原创 2018-05-29 21:27:34 · 3751 阅读 · 0 评论 -
位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。运算符号按位与 & a&b按位或 | a|b按位异或 ^ a^b按位取反 ~ ~a左移 << a<...原创 2018-07-20 10:06:59 · 813 阅读 · 0 评论 -
进制之间的相互转换
进制转换进制转换是我们经常碰到的问题。我碰到过很多次了,所以想做一个总结。首先我们主要用到的的进制有二进制、八进制、十进制和十六进制。十进制比较特殊,先不考虑。先说一下二进制与八进制和十六进制的关系,一位8进制对应3位2进制,一位16进制对应4位2进制。这样在转换的时候就很容易了。 10进制与其他进制的转换这个是非常简单的,只需要循环取余就可以了。代码/* 10转16进制 */#i...原创 2018-12-03 17:03:30 · 865 阅读 · 0 评论 -
反转链表
之前在网上看到一道题,如何将一个链表反转,当时没有实践做,现在来写一下。有些东西不当时写下来过段时间就会容易忘掉首先我们先来创建一个单链表,这里我们选择尾插法来构建struct node{ int num; struct node * next;};int main(){ node *head; node *s, *p, *r; head = (...原创 2019-06-25 00:35:01 · 660 阅读 · 0 评论 -
简单的排序:冒泡排序,选择排序,快速排序和归并排序。
今天对一些排序简单的总结了一下,主要有冒泡排序,选择排序,快速排序和归并排序。int a[10] = {8,5,2,3,6,9,7,4,1,0};冒泡排序冒泡排序应该是我们在学习过程中学习到的第一个排序算法,for (int i=0;i<10-1;i++) for (int j=0;j<10-i;j++) { if (a[j]>a[j+1])...原创 2019-07-10 12:29:12 · 2363 阅读 · 1 评论