算法
西北向长安
这个作者很懒,什么都没留下…
展开
-
360面试题:ab串
问题描述输入一个只包含’a‘ ’b‘的字符串,将该字符串中的’ab‘换成’bba‘,直到字符串中不出现’ab’,问最小需要多少步。参考文章1:https://www.cnblogs.com/yoke/p/6904472.html参考文章2:https://blog.csdn.net/weixin_42104573/article/details/104034514思路刚开始想的很麻烦,创建一个字符串,根据ab位置进行变换再统计次数。但找到网上别人的思路之后豁然开朗,不需要这样麻烦。根据题意,任原创 2021-07-15 11:04:58 · 1160 阅读 · 0 评论 -
生日蜡烛问题(蓝桥杯算法)
问题:现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。分析:这道题目第一眼看起来很简单,采用暴力穷举进行循环就能解决。但是从一开始就陷入一个思维怪圈,以为这么简单一层循环就够了,但是写了半天还是不行。最后试了试双重循环,问题迎刃而解。代码:#incl...原创 2019-03-17 09:14:29 · 2152 阅读 · 0 评论 -
寒假作业问题(DFS方法)
问题:寒假作业现在小学的数学题目也不是那么好玩的。看看这个寒假作业:每个方块代表1~13中的某一个数字,但不能重复。比如:6 + 7 = 139 - 8 = 13 * 4 = 1210 / 2 = 5以及:7 + 6 = 139 - 8 = 13 * 4 = 1210 / 2 = 5就算两种解法。(加法,乘法交换律后算不同的方案)你一共找到了多少种方案?请填写表示...原创 2019-03-19 17:54:24 · 470 阅读 · 2 评论 -
明码问题四种方法(转载自其他博客)
问题:汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是:第1字节,第2字节第3字节,第4字节....第31字节, 第32字节这道题目是给...转载 2019-03-19 22:42:28 · 622 阅读 · 0 评论 -
递归法解决小学数学吃桃问题
问题:有这样一个问题,去水果摊买桃子吃,吃完之后三个桃核可以再换一个桃子。假如现在买了N个桃子,最多可以吃到几个桃子?分析:典型的递归解决问题。找出桃子数量、桃核数量和最终数量之间的关系,递归调用,便直接解决问题。代码:#include<iostream>using namespace std;int total = 0;void com(int n,int m) ...原创 2019-03-20 20:36:57 · 1174 阅读 · 0 评论 -
猴子吃桃问题(理想状态:逆推思想加递归调用)
问题:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。分析:看见这道题的第一感觉就是逆推思想,我把这个时间和动作颠倒过来:第一天有1个桃子,第二天再第一天桃子基础上加1个桃子,再乘以2,到第十天有几个桃子?这下...原创 2019-03-20 21:08:52 · 1279 阅读 · 0 评论 -
凑算术问题(穷举搜索或者深度优先搜索法)
问题:形如上图所示,这个算式中A-I代表1-9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。分析:当看到这个题目时,第一反应就是暴力穷举搜索出所有存在的可能,再找出符合条件的结果。可想而知,暴力法时间复杂度太大,当数...原创 2019-03-17 19:51:45 · 829 阅读 · 1 评论 -
交换瓶子(暴力法直接解决)
问题:交换瓶子:有N个瓶子,编号 1 - N,放在架子上。比如有5个瓶子:2 1 3 5 4要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式为两行:第一行: 一个正整数N(N<10000), 表示瓶子的数目第二行:N个正整数,用空...原创 2019-03-18 22:33:44 · 322 阅读 · 0 评论 -
求素数的几种方法(暴搜法和筛选素数法)
https://www.cnblogs.com/grubbyskyer/p/3852421.html转载 2019-03-23 08:21:29 · 1204 阅读 · 0 评论 -
螺旋折线(找规律采用递推法解决问题)
问题描述:对于如下图所示的图形,该螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。例如dis(0, 1)=3, dis(-2, -1)=9给出整点坐标(X, Y),你能计算出dis(X, Y)吗?分析:这个图形是有规律而循的,只需要找到它的规律,便可以解决类似问题。这类问题也是在编程时最喜欢遇...原创 2019-03-16 20:14:46 · 667 阅读 · 0 评论 -
2018省赛第九届蓝桥杯真题C语言B第四题题解 测试次数(数学思想解决)
(https://blog.csdn.net/nka_kun/article/details/79789511)看完之后,受益匪浅。转载 2019-03-16 16:42:48 · 366 阅读 · 0 评论 -
几个常见的简单的算法(暴力法,递推法,枚举法,递归法,分治法,贪心法,回溯法)
最近在学习算法相关知识。通过买的视频教程了解到了一些简单的算法,为了加深感悟,同时也为了理解,将这几个常见的算法的定义进行记录。算法是程序的灵魂,也可以认为是程序最重要的部分。在通过算法解决问题时,感觉就是熟悉题意,明白要解决的问题,将之转化成数学模型,在通过数学思想选择合适正确的解题思路,再将之用代码表现出来。将数学思想用代码表现出来就是最复杂的部分。1,暴力法顾名思义,就是直接对...原创 2019-02-27 23:18:21 · 4926 阅读 · 0 评论 -
斐波那契数列(兔子数量问题)
题目描述:有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?分析: 通过题意可以知道,兔子长到第三个月才会开始产兔子,同时不考虑兔子死亡的情况。当输入一个月份时,输出这个月份的所有兔子的总数量。情况如下: 月份 一个月的幼兔 两个月的幼兔 三个月的大兔(可以产...原创 2019-02-27 23:38:13 · 1013 阅读 · 0 评论 -
斐波那契数列取余(蓝桥杯算法练习入门)
问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除...原创 2019-03-03 09:28:28 · 1764 阅读 · 0 评论 -
蓝桥杯算法练习题答案
(https://blog.csdn.net/sihai12345/article/details/79238058)这篇博客是对蓝桥杯官网中练习系统的算法的讲解,收藏转载,便于学习。转载 2019-03-04 22:43:00 · 4086 阅读 · 0 评论 -
数制转换(采用递归法解决常用数制之间的转换)
/*进制转换问题,一般有二进制,八进制,十进制以及十六进制,我们常用的是十进制。一般在转换时也是以十进制为基础,采用长除法来转换为相对应的进制(这也是最经常使用的一种方法)。在设计程序时也是采用这个思想,用字符串来存放转换而成的目标进制数字。采用递归的思想。*/#define _CRT_SECURE_NO_WARNINGS //解决编译信息中提示使用不...原创 2019-03-10 10:00:43 · 585 阅读 · 0 评论 -
枚举法(蛮力思想)和回溯法列出所有彩票号码
问题描述现在有这样一个问题:假设彩票号码有七注,每一注是从1-29的数字中的一个,每一注数字不能和其他注的重复。现在写出所有可能的号码。分析可以采用枚举法,使用蛮力的思想来解决问题。使用循环遍历来输出所有可能的结果,这种方法言简意赅,能直接想到,但是循环层数过大,时间复杂度过大,代码运行时间较长。也可以采用试探法,使用递归方法减小工作量,降低时间复杂度。1,枚举法(蛮力)#incl...原创 2019-03-10 11:18:41 · 543 阅读 · 0 评论 -
某天是该年的第几天(暴力法)
问题:第几天?比如 2000年的1月1日,是那一年的第1天。####那么,2000年的5月4日,是那一年的第几天?####注意:需要提交的是一个整数,不要填写任何多余内容。程序设计思路:暴力法直接解决,首先判断该年是不是闰年,闰年2月29天,平年28天,以该年份的1月1日为第一天,直接累加即可。#include<iostream>using namespace std;...原创 2019-03-14 09:51:32 · 257 阅读 · 0 评论 -
乘积尾零问题
问题描述:标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 2287 1453 9899148...原创 2019-03-16 15:00:01 · 1148 阅读 · 1 评论 -
枚举法解决“给定运算数字和结果,列举出所有可能的问题如5 5 5 5 5 = 5”
问题形如 5 5 5 5 5 = 5这样的式子,要求给定5个数字,同时给定一个结果;在这五个数字之间可以填写不同的运算符号,最终使这个等式成立,试通过列出所有的可能。分析:这样的题在中小学时候见过不少,只是单纯的求出一种可能比较简单,但要是求解出所有的可能结果,工作量很繁琐,人工计算也可能有遗漏。要是在程序中通过代码将数学公式写出来就会简单很多。四则运算中乘除运算优先于加减运算,在进行...原创 2019-03-07 11:12:50 · 948 阅读 · 1 评论