摘要:
leetcode题目-16.25.LRU缓存 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 它应该支持以下操作: 获取数据 get 和 写入数据 p 阅读全文
摘要:
0-1背包 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 重要的点在于:每种物品仅有一件,可以选择放/不放 子问题:f[i][v]表示前i件物品恰好放入一个 容量为v 的背包可以获得的最大价值。 状态转移方程(递推式):f[i] 阅读全文
摘要:
冒泡排序 特点 不断比较两个相邻的元素,将值较大的元素交换到右边,如果遇到相等的值就不进行交换。 大/小元素经过不断的交换浮到顶端。 思路 以[10,1,35,61,89,36,55]为例 1)第一轮排序: 1.首先比较第一个值10和第二个值1,大小逆序了,所以交换.得到[1,10,35,61,89 阅读全文
摘要:
题目-求1+2+3+...+n 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路 由于需要用到的就是一个递归,当n>0时,将后面的数字进行一个递归的相加。当输入0时,即n==0,输出0,直接不进行递归 阅读全文
摘要:
题目-数字在排序数组中出现的次数 统计一个数字在排序数组中出现的次数。 如Input: array=1,2,3,3,3,3,4,6 k=3Output: 4 思路 1.由于输入的数组是排序的,那么二分查找算法很适用这个场景。二分查找很容易找到一个3,由于3可能出现很多次,因此我们可以在3的左右两边按 阅读全文
摘要:
题目-数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路 1.数组中有一个数字出现的次数超过数组长度的一 阅读全文
摘要:
4.2 画图 题目-二叉树的镜像 操作给定的二叉树,将其变换为源二叉树的镜像。 思路 求二叉树镜像的过程:1)交换根结点的左右子树;2)交换值为10的结点的左右子结点;3)交换值为6的结点的左右子结点。 总结这个过程就是:前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。直到 阅读全文
摘要:
操作系统是什么 管理计算机硬件与软件资源的程序,是计算机系统的内核与基石 本质上是运行在计算机上的软件程序 为用户提供一个与系统交互的操作界面 分为内核与外壳,其中内核是能操作硬件的程序,而外壳则是围绕着内核的应用程序 进程调度算法 根据系统资源分配资源所规定的资源分配算法 先来先服务调度算法 FC 阅读全文
摘要:
Java同步/异步IO 同步是一种对共享资源的访问方式。当多个资源需要访问同一个互斥资源时,他们需要以某种顺序来确保该资源在某个时刻只能有一个线程对其使用。 异步是一种非阻塞方式。一个线程对对象的操作时,不必关心其他线程的状态或行为,也不必等到方法处理完成返回后才进行之后的操作。 同步的实现方式:s 阅读全文
摘要:
二级索引 聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据。具有唯一性,聚簇索引默认是主键,如果表中没有定义主键,InnoDB 会选择一个唯一的非空索引代替。如果没有这样的索引,InnoDB 会隐式定义一个主键来作为聚簇索引。 非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向 阅读全文