算法
俶尔乘风_御青空
以梦为码,码到成功。
展开
-
NC93 设计LRU缓存结构
文章目录题目描述代码实现题目描述描述设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 k ,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值提示:1.某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的,然后都会刷新缓存。2.当缓存的大小超过k时,移除最不经常使用的记录。3.输入一个二维数组与k,二维数组每一维有2个或者3个数字,第1个数字为opt,第2,3原创 2021-11-30 20:04:46 · 241 阅读 · 0 评论 -
1022 D进制的A+B (20 分)
题目 1022 D进制的A+B (20 分)输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103思路:进制转换实质上就是一个求模运算代码实现(c++):#include <cstdio> int main(){ int a, b, c原创 2021-04-08 14:16:06 · 120 阅读 · 0 评论 -
1021 个位数统计 (15 分)
题目1021 个位数统计 (15 分)给定一个 k 位整数 N=dk−1 10k−1 +⋯+d1 101 +d0 (0≤di ≤9, i=0,⋯,k−1, dk−1 >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输出格式:对 N 中每一种不同的个位数字,以原创 2021-04-08 13:52:16 · 122 阅读 · 0 评论 -
1018 锤子剪刀布 (20 分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤105 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1原创 2021-04-07 17:04:48 · 78 阅读 · 0 评论 -
排序算法的总结
排序算法的总结基于比较的排序算法基础排序一、冒泡排序二、选择排序三、插入排序四、希尔排序(缩小增量排序)分治法五、快速排序六、归并排序七、堆排序非比较排序八、计数排序九、桶排序十、基数排序基于比较的排序算法基础排序一、冒泡排序谁大谁大,每一轮都把最大的顶到天花板效率太低(n^2)--掌握swap二、选择排序效率较低,但经常用他内部的循环方式来找最大值和最小值--怎么一次性求出数组的最大值和最小值O(n^2)三、插入排序虽然平均效率低,但是在序列基本有序时,它很快,所以也有其适用范围原创 2021-03-28 11:17:24 · 254 阅读 · 0 评论 -
2021蓝桥杯 递归
递归递归的解法找重复找变化的量找到出口汉诺塔全范围二分查找斐波那契数列问题递归的解法找重复1.找到一种划分方法2.找到递推公式或者“等价代换”都是父问题转化为子问题找变化的量变化的量通常作为参数找到出口根据参数变化的趋势,对边界进行控制,适时终止递归汉诺塔1-N从A移动到B,C作为辅助等价于: 1.1-N-1移动到C,B作为辅助 2.把N从A移动到B 3.1-N-1从C移动到B,A作为辅助全范围二分查找等价于三个子问题:左边找(递归)中间比右边找(递归)注意原创 2021-03-23 08:48:35 · 250 阅读 · 0 评论 -
二分查找的最大查找次数及Python实现
一、比较次数1、如果最多比较x次,则区间长度为2^(x-1) ~ 2^x-12、对于区间长度y,最多比较logy+1次二、python代码:def binary_search(l1, item): low = 0 high = len(l1) - 1 while low <= high: mid = int((low + high) / 2) guess = l1[mid] if guess == item:原创 2020-12-14 15:32:53 · 1914 阅读 · 0 评论 -
1013 数素数 (20分)
令 P i 表示第 i 个素数。现任给两个正整数 M≤N≤10 4 ,请输出 P M 到 P N 的所有素数。输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。输出格式: 输出从 P M 到 P N 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 7983 89 97 1.原创 2020-06-23 14:35:45 · 115 阅读 · 0 评论 -
1012 数字分类 (20分)
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A 1 = 能被 5 整除的数字中所有偶数的和; A 2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算n 1 −n 2 +n 3 −n 4 ⋯; A 3 = 被 5 除后余 2 的数字的个数; A4 = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位; A 5 = 被 5 除后余 4 的数字中最大数字。输入格式: 每个输.原创 2020-06-23 11:07:01 · 349 阅读 · 0 评论