
刷题
托马斯.杨
这个作者很懒,什么都没留下…
展开
-
LRU算法
1.什么是LRU CacheLRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。 什么是Cache?狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。 广义上的Cache指的是位于速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。除了CPU与主存之间有Cache, 内存与硬盘之间也有Cache,乃至在硬盘与网络之间也有某种意义上的Cache── 称为In原创 2020-07-27 14:24:22 · 267 阅读 · 0 评论 -
并查集介绍及应用
一、并查集原理并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题只能用并查集来描述。并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。举个栗子:某公司今年校招全国总共招生10人,西安招4人,成都招3人,武汉招3人,10个人来自不同的学校,起先互不相识,每个学生都是一个独立的小团体,现给这些学生进行编号:{0,1,2,3原创 2020-07-24 16:48:18 · 1261 阅读 · 0 评论 -
路径问题(Triangle,unique-path,Minimum Path Sum)
题目1:Triangle给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字, 例如,给出的三角形如下:[2],↵[3,4],↵[6,5,7],↵[4,1,8,3]↵最小的从顶部到底部的路径和是2 + 3 + 5 + 1 = 11。注意:如果你能只用O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中N是三角形中的行总数。从倒数第...原创 2019-12-12 21:57:59 · 380 阅读 · 0 评论 -
word-Break
题目:给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。例如: 给定s=“leetcode”; dict=[“leet”, “code”].返回true,因为"leetcode"可以被分割成"leet code".题目中的例子不太合适,下面以traditionalculture为例,...原创 2019-12-12 15:52:58 · 367 阅读 · 0 评论 -
最短编辑距离
给定两个字符串。定义三种操作:1.插入一个字符2.修改一个字符3.删除一个字符求最少几步操作使得第一个字符串变成第二个字符串。例如:第一个字符串lighten,第二个字符串fightingfighten (l->f) 修改fightin (e->i) 修改fighting (->g) 插入一共三步输入描述:第一行为一个字符串s(1<=|s|<...原创 2019-12-03 16:39:38 · 141 阅读 · 0 评论 -
跳台阶及其一系列的动态规划问题
题目1:变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。 求该青蛙跳上一个n级的台阶总共有多少种跳法。解法1:(逆向求解)跳n阶,可以从n-1阶,n-2阶, n-3阶…0阶的基础上跳一次到达n阶,就是将n-1阶到0阶的各个跳法并求和。int jumpFloorII(int number) { int sum = 0; if (number &l...原创 2019-12-12 14:47:19 · 409 阅读 · 0 评论 -
不要二---欧几里得距离求蛋糕数
标题:不要二 | 时间限制:1秒 | 内存限制:32768K 二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一 块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根,小易想知道最多...原创 2019-11-13 22:18:46 · 286 阅读 · 0 评论 -
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”(牛客网)下面用一副图大致解释一下C语言的解题思路:src:要删除的字符串 ,dest :保存要删除的数据的字符串。1.外层遍历dest,逐个查找删除。2.用tmp找到第一次匹配到的位置3.src串中有...原创 2019-11-07 12:48:29 · 1697 阅读 · 0 评论 -
如何将字符串中的空格替换成其他的符号(答题心得)
将字符串中的空格转换为%20class Solution {public: void replaceSpace(char *str, int length) { }};这道题时牛客网上刷到一道题,大致一看,就有了思路:开个源字符串3倍的空间 ,将源字符串逐次考进去,遇到空格转换为%20.再重新赋给源字符串。可是写了一大堆,编译就不给过(提交不给过),说是调用太复杂,,,,...原创 2019-10-14 11:35:58 · 1785 阅读 · 0 评论 -
求各组中间值的最大和就是使所有组的中间值尽可能最大
牛牛举办了一次编程比赛, 参加比赛的有3*n个选手, 每个选手都有一个水平值a_i.现在要将这些选手进行组队, 一共组成n个队伍, 即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如 :一个队伍三个队员的水平值分别是3, 3, 3.那么队伍的水平值是3一个队伍三个队员的水平值分别是3, 2, 3.那么队伍的水平值是3一个队伍三个队员的水平值分别是1, 5, 2.那么队...原创 2019-11-08 20:06:02 · 445 阅读 · 0 评论 -
牛牛排序子序列
1、排序子序列 牛牛定义排序子序列为一个数组中一段连续的子序列, 并且这段子序列是非递增或者非递减排序的。 牛牛有一 个长度为n的整数数组A, 他现在有一个任务是把数组A分为若干段排序子序列, 牛牛想知道他最少可以把这个数 组分为几段排序子序列.如样例所示, 牛牛可以把数组A划分为[1, 2, 3]和[2, 2, 1]两个排序子序列, 至少需要划分为2个排序子序列2、输入描述: 输入的第一...原创 2019-11-09 18:24:06 · 1356 阅读 · 1 评论