
数据结构与算法
树新风\(^o^)/~
大智若愚
展开
-
数据结构之线性表
线性表顺序存储结构如:数组(在python中类似于列表)优点:由于是顺序存储,所以可以很方便的知道每个元素的存储位置。缺点:在进行插入或者删除元素时需要移动大量元素,会耗费大量时间。(插入元素时需要将后面的每个元素都向后移动一个位置,删除元素时则需要将后面的每个元素都向前移动一个位置)链式存储结构优点:存储位置不确定,并不是有序的。在进行插入或删除元素时不需要移动大...原创 2018-09-11 10:28:30 · 928 阅读 · 0 评论 -
字符串比较
标题:字符串比较我们需要一个新的字符串比较函数compare(s1, s2).对这个函数要求是:1. 它返回一个整数,表示比较的结果。2. 结果为正值,则前一个串大,为负值,后一个串大,否则,相同。3. 结果的绝对值表示:在第几个字母处发现了两个串不等。下面是代码实现。对题面的数据,结果为:-325仔细阅读源程序,填写划线位置缺少的代码。-------------------...原创 2017-03-20 19:21:07 · 1490 阅读 · 0 评论 -
还款计算
标题: 还款计算银行贷款的等额本息还款方法是:每月还固定的金额,在约定的期数内正好还完(最后一个月可能会有微小的零头出入)。比如说小明在银行贷款1万元。贷款年化利率为5%,贷款期限为24个月。则银行会在每个月进行结算:结算方法是:计算本金在本月产生的利息: 本金 x (年利率/12)则本月本金结余为:本金 + 利息 - 每月固定还款额计算结果会四舍五入到“分”。经计算,此种情况下,...原创 2017-03-21 11:32:23 · 1727 阅读 · 0 评论 -
BFS算法之迷宫最短路线
迷宫地图用0和1表示,1代表通路,0表示不通。代码import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class bfs { /** * bfs */ public static void main(String[] args) { cla...原创 2017-03-22 11:16:10 · 1553 阅读 · 0 评论 -
李白打酒
话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一...原创 2017-03-23 13:01:27 · 996 阅读 · 0 评论 -
贪心算法之找零钱
问题描述:当前有面值分别为2角5分,1角,5分,1分的硬币,请给出找n分钱的最佳方案(要求找出的硬币数目最少)代码import java.util.Scanner;/** * 贪心算法 */public class Main { public static void main(String[] args) { int[] mon...原创 2017-03-23 19:09:57 · 3753 阅读 · 0 评论 -
平方怪圈
平方怪圈如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。请写出这个循环圈中最大的那个数字。请填写该最大数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案 145代码pub...原创 2017-03-26 19:31:08 · 1131 阅读 · 0 评论 -
搭积木
搭积木小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。最后搭成4层的金字塔形,必须用完所有的积木。下面是两种合格的搭法: 0 1 23 4 56 7 8 9 0 3 17 5 29 8 6 4 请你计算这样的搭法一共有多少种?请...原创 2017-03-29 08:58:37 · 1160 阅读 · 0 评论 -
冰雹数
冰雹数任意给定一个正整数N,如果是偶数,执行: N / 2如果是奇数,执行: N * 3 + 1生成的新的数字再执行同样的动作,循环往复。通过观察发现,这个数字会一会儿上升到很高,一会儿又降落下来。就这样起起落落的,但最终必会落到“1”这有点像小冰雹粒子在冰雹云中翻滚增长的样子。比如N=99,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,...原创 2017-03-29 09:21:30 · 2198 阅读 · 0 评论 -
算年龄
标题:算年龄英国数学家德摩根出生于19世纪初叶(即18xx年)。他年少时便很有才华。一次有人问他的年龄,他回答说:“到了x的平方那年,我刚好是x岁”。请你计算一下,德摩根到底出生在哪一年。题中的年龄指的是周岁。请填写表示他出生年份的四位数字,不要填写任何多余内容。答案 1806代码public class Main { public stati...原创 2017-03-20 18:35:52 · 1227 阅读 · 2 评论 -
滑动解锁
题目:滑动解锁滑动解锁是智能手机一项常用的功能。你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点。这些划过的点所组成的有向折线,如果与预设的折线在图案、方向上都一致,那么手机将解锁。所谓两个点“相邻”:当且仅当以这两个点为端点的线段上不存在尚未经过的点。此外,许多手机都约定:这条折线还需要至少经过4个点。为了描述方便,我们给这9个点从上到下、从左到右依次编号1...原创 2017-03-20 14:54:42 · 1563 阅读 · 0 评论 -
布隆过滤器的python实现
布隆过滤器是一种以牺牲一部分正确率来换取空间复杂度的数据结构,其中误报指的是可能会判断不存在的元素为可能存在,但在判断不存在的元素时不会出现误报,即返回为True时元素可能存在,返回False时元素一定不存在。下表是布隆过滤器的误报率,m为元素总个数,n为过滤器长度,k为hash函数的个数。m/nkk=1k=2k=3k=4k=5k=621.390.3930...原创 2019-01-31 12:56:06 · 1204 阅读 · 0 评论 -
奇怪的捐赠
标题:奇怪的捐赠 地产大亨Q先生临终的遗愿是:拿出100万元给X社区的居民抽奖,以稍慰藉心中愧疚。麻烦的是,他有个很奇怪的要求:1. 100万元必须被正好分成若干份(不能剩余)。每份必须是7的若干次方元。 比如:1元, 7元,49元,343元,...2. 相同金额的份数不能超过5份。3. 在满足上述要求的情况下,分成的份数越多越好!请你帮忙计算一下,最多可以分为多少份?注...原创 2017-03-19 15:37:18 · 3095 阅读 · 2 评论 -
猜算式
题目:猜算式你一定还记得小学学习过的乘法计算过程,比如: 273x 15------ 1365 273------ 4095请你观察如下的乘法算式 ***x ***-------- *** *** ***-------- *****星号代表某位数字,注意这些星号中,0~9中的每个数字都恰好用了2次。(如出现因...原创 2017-03-19 15:39:28 · 3045 阅读 · 0 评论 -
数字段计数
标题:数字段计数在一个给定的字符串中,既包含数字也包含字母。我们不关心具体的数字、字母都是什么。我们只是想知道,被字母隔开的数字区域一共有多少个?换句话说,把连续的数字看成一个数字段(单个的数字也算一段),那么这样的“段”有多少呢?比如:"YYY5532XX6X78" 就包含3个数字段。而,"45TTT7799M" 包含两个数字段。 下面的程序解决了这个问题。其思路是:每发现一个...原创 2017-03-19 15:42:51 · 1428 阅读 · 0 评论 -
报数游戏
标题:报数游戏有 n (1<n<10000)个小朋友站成一个圆圈。选定一个小朋友为1号,从他(她)开始顺时针编号:1,2,3,4,...游戏开始! 从1号小朋友起,顺时针报数,从1报起。即:1号小朋友报1,2号小朋友报2,3号小朋友报3, ....游戏规定,报到数字 m(1<m<100) 的小朋友立即退出报数圈。在他(她)的顺时针方向的下一个小朋友(如果有的话)...原创 2017-03-19 15:46:33 · 4694 阅读 · 0 评论 -
加密解密
标题:加密解密 Playfair密码由英国人发明,它使用方便而且可以让频度分析法失效,直到一战中才被破译。 其一变种方法如下:首先选择一个密钥单词(称为pair)(剔除重复字母,且都为小写字母),然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:1.首先按行填入密钥串,重复的字母忽略之。2.紧接其后,按字母序按行填入不在密钥串中的字母。3.由于方阵中只有25个...原创 2017-03-19 15:48:19 · 1934 阅读 · 0 评论 -
未名湖的烦恼的递归问题
未名湖的烦恼每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式 两个整数,表示m和n...原创 2017-03-19 16:14:15 · 1152 阅读 · 0 评论 -
DFS算法之迷宫寻路问题
要求输入两个整数m,n表示迷宫矩阵大小(m*n),然后输入迷宫矩阵,0表示死路,1表示通路。令迷宫入口坐标为(0,0)出口坐标为(m-1,n-1)。要求输出走出迷宫的所有路线和最短的一条路线。如:输入4 41 1 1 10 1 1 01 1 1 10 1 1 1则输出找到路线:(0,0)-(0,1)-(1,1)-(2,1)-(3,1)-(3,2)-(3,3)找到路...原创 2017-03-19 20:49:55 · 6771 阅读 · 10 评论 -
等式补全dfs+剪枝
第六题下图中,每个方块代表1…13中的某一个数字,但不重复。例如:1×2+9×7=13×510×8+12×3=11×4只要有任意一个方块代表的数字不同,就算两种不同的方案。请你计算,一共有多少种不同的方案。答案122368代码public class Main { static int sum = 0; public stati...原创 2017-04-06 14:07:32 · 1173 阅读 · 0 评论