算法练习
算法练习熟练
Mr_树先森
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【剑指offer】找出数组中重复的数字
问题描述:题目一:找出数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为5的数组{1,3,3,4,2},那么对应的输出是重复的数字3。算法分析:如上面的例子,第0个元素是1,和下标不符,和第一个元素互换,此时为3,1,3,4,2,第0个元素是3,和下标不符,和下标是3的对比,下标是3的数也是3,则3重复,输出3,若不是3,则重复第一步。算法实现原创 2021-03-27 00:03:08 · 539 阅读 · 1 评论 -
【剑指offer】求1~n之间5出现的次数
问题描述:输入一个整数n,求1至n之间包括n,出现了几次5,。例如,输入15,1~15这些整数中包含5的数字有5、15,5一共出现了2次。问题分析:能想到最直观的方法,也就是累加1~n中每个整数5出现的次数。我们可以每次通过对10求余数判断整数的个位数字是不是5。如果这个数字大于10,则除以10之后再判断个位数字是不是5。算法实现:import java.util.Scanner;public class Main { static int number(int n){原创 2021-03-30 21:31:24 · 1445 阅读 · 2 评论 -
【剑指offer】二维数组中的查找
问题描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。算法分析:先来一个案例,便于理解,下面的二维数组,不论查找的数字是多少,先和右上角的数字比较,比如查找7,7<9,9是第4列最小的数,则7不可能在第4列,接着在第3列查找,7<8,同样不可能在第3列,再看第2列,7>2,说明可能在第1,第2列的2,3,4行里面,现在第2列的第二行查找,7>4,继续在第3原创 2021-03-27 21:47:07 · 760 阅读 · 1 评论 -
【剑指offer】KMP算法 用特殊符号替换字符串中的空格
一、 题目描述请实现一个函数,把字符串中的每个空格替换成"%20"。例如,输入“We are happy.”,则输出“We%20are%20happy."。二、问题分析遍历字符串每一个字符,对每个字符与空格比较,如果相同,则replaceEd.append("%20");如果不同,则字符不变,继续向下遍历。三、算法实现import java.util.Scanner;/** * @author jitwxs * @date 2021年04月01日 20:31 */public c原创 2021-04-01 20:59:32 · 402 阅读 · 2 评论 -
【剑指offer】圆环中有n个数,每次删除第m个,求最后剩下得数(约瑟夫环问题)
一、 题目描述:0,1,…n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈(如图所示),从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。二、题目解析本题就是有名的约瑟夫环问题。我们介绍两种解题方法:一种方法是用环形链表模拟圆圈的经典解法;第二种方法是分析每次被删除的数字的规律并直接计算出圆圈中最后剩下的数字。由于第一种方法的时间复杂度和空间复杂原创 2021-03-31 09:13:54 · 1116 阅读 · 1 评论 -
【剑指offer】 Java解决斐波那契数列问题
问题描述:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下:问题分析我们对函数进行分段处理,当n<2时,第一项等于0.第二项等于1。当n大于2时:fn=fone+ftwo; 第n项等于前两项的和fone=ftwo; 把第n-2项赋值给n-1项ftwo=fn;把第n项赋值给n-1项。然后利用循环就可以求出指定的每一项算法实现:import java.util.Scanner;public class Main { static long aLong(i原创 2021-03-28 20:22:23 · 691 阅读 · 1 评论 -
【剑指offer】Java解决青蛙跳台阶问题
问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。问题分析: 如果n=1,只有一种跳法,那就是1如果n=2,那么有两种跳法,2,[1,1]如果n=3,那么有三种跳法,[1,1,1],[1,2],[2,1]如果n=4,那么有五种跳法,[1,1,1,1],[1,1,2],[1,2,1],[2,1,1],[2,2]如果n=5,那么有八种跳法,[1,1,1,1,1],[1,1,1,2],[1,1,2,1],[1,2,1,1],[2,1,1,1],原创 2021-03-28 20:42:47 · 730 阅读 · 0 评论 -
【蓝桥杯算法】煤球数目
题目描述:有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),…如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。代码实现:package 蓝桥.demo2017.demo1;/** * @author jitwxs * @date 2021年04月12日 19:24 */public class Main{原创 2021-04-12 19:40:43 · 275 阅读 · 0 评论 -
模拟图灵机XN乘2的过程
一、问题描述JAVA实现模拟图灵机实现自然数乘2的过程。二、算法构造编码规则:0→0;1→10;, →110;处理方法:内态为0,输入为0→内态为0,输出为0,右移;内态为0,输入为1→内态为1,输出为0,右移;内态为1,输入为0→内态为0,输出为1,右移;内态为1,输入为1→内态为10,输出为0,右移;内态为10,输入为0→内态为11,输出为1,右移;内态为11,输入为0→内态为0,输出为1,STOP;三、流程设计四、算法实现TuLing类/** * @a原创 2021-04-01 20:13:58 · 632 阅读 · 1 评论 -
【蓝桥杯算法】旅游景点排序问题,配合案例讲解冒泡排序,选择排序,插入排序,快速排序
问题描述:小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。输入格式:输入的第一行包含一个正整数N,表示N个景点。第二行有N个正整数,表示每个景点的评分值。输出格式: 输出一行,包含N个正整数,表示N个景点的评分从大到小的排列样例输入:43 2 4 1样例输出:4 3 2 1问题分析:这个问题,其实就是一个简单的排序问题,之所以要写这个简单的题,是因为我原创 2021-03-31 23:46:39 · 1099 阅读 · 0 评论 -
【蓝桥杯算法】输入x,y两个值,不借用其他变量交换x,y的值
问题描述:编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。 输入格式:输入只有一行,包括两个整数。 输出格式:输出只有一行,也是两个整数,即交换以后的结果。 要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输出交换后的结果。 实现代码:import java.util.Scanner;public class Main {原创 2021-03-31 21:15:47 · 1500 阅读 · 4 评论 -
【蓝桥杯算法】给出二叉树前序遍历,中序遍历,输出后序遍历
一、问题描述最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情:(1)WYF的点卡工厂构成一颗二叉树。(2)—共有n座工厂。(3).他需要把这颗树上的点以后序遍历的方法列出来,才能绘制地图。还好,最近他的属下给了他先序遍历和中序遍历的数据。可是,氰垃圾最近还要帮愈潭宇解决一些问题,没有时间。请你帮帮他,替他完成这项任务。由于氰垃圾的一些特殊的要求,WYF的参观路线将会是这棵树的后序遍历。二、问题分析解题思路:先序遍历序列的原创 2021-03-31 13:05:28 · 819 阅读 · 1 评论
分享