
算法
csdn-[baotai]
这个作者很懒,什么都没留下…
展开
-
【java】十大经典排序算法(动图演示)
十大经典排序算法(动图演示)0,算法概述0.1算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2算法复杂度...转载 2018-05-12 19:17:17 · 14906 阅读 · 7 评论 -
【Java】给定一个二叉树和其中的一个节点,请找出中序遍历的下一个节点且返回, 注意:树中的节点不仅包含左右子节点,同时包含父节点的指针。
题目描述: 给定一个二叉树和其中的一个节点,请找出中序遍历的下一个节点且返回,注意:树中的节点不仅包含左右子节点,同时包含父节点的指针。解题思路:对于二叉树中所有的节点,可以大致分为两类:1、有右子树的,那么下个结点就是右子树最左边的点;2、没有右子树的,也可以分成两类 a)是父节点左孩子 ,那么父节点就是下一个节点 ; ...原创 2018-08-20 00:14:29 · 627 阅读 · 0 评论 -
【Java】【算法练习】输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组 {3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路: 解题思路: 比较两个字符串s1 S2的大小的时候,先将它们拼接起来,比较s1+s2和s2+s1哪个大,如果s1+s2大,那么说明s2应该放在前面,此题巧妙应用了...原创 2018-09-04 09:20:07 · 3358 阅读 · 4 评论 -
【Java】【算法练习】对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。 给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输
题目描述: 对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。测试样例:[[1,2],[3,4]],2,2返回:[1,2,4,3]解题思路:对于一个矩阵,顺时针打印时一定要保证边界处理的正确性;解题代码:public class Prin...原创 2018-09-06 09:13:39 · 1513 阅读 · 0 评论 -
【Java】【算法】——算法篇
算法 10亿个数字里里面找最小的10个。 有1亿个数字,其中有2个是重复的,快速找到它,时间和空间要最优。 2亿个随机生成的无序整数,找出中间大小的值。 给一个不知道长度的(可能很大)输入字符串,设计一种方案,将重复的字符排重。 遍历二叉树。 有3n+1个数字,其中3n个中是重复的,只有1个是不重复的,怎么找出来。 写一个字符串(如...原创 2018-08-28 09:17:22 · 1981 阅读 · 0 评论 -
【java】优先队列问题2018-9-25
什么是优先队列?提到优先队列我们首先想到的就是队列这个数据结构队列的特点是什么?先进先出(FIFO)。入队列:出队列:那么,优先队列又是什么样子呢?优先队列不再遵循先入先出的原则,而是分为两种情况:最大优先队列,无论入队顺序,当前最大的元素优先出队。最小优先队列,无论入队顺序,当前最小的元素优先出队。比如有一个最大优先队列,它的最大元素是8,那么虽然元素8并不是队首元素,但...原创 2018-09-25 13:08:20 · 968 阅读 · 0 评论 -
【Java】【编程练习】输入一个正整数n,求n!(即阶乘)末尾有多少个 0 ? 2018-9-28
输入一个正整数n,求n!(即阶乘)末尾有多少个0解题思路:求末尾几个0,就看这个数有几个10因子,10=5*2,但是最后得到的结果2的个数一定多于5的个数,所以只需要求5的个数就可以了。但是就像25这种数字,它可以被5除两次,所以我们要在循环中除以5,最后把除5的个数累加就可以了。代码实现:import java.util.Scanner;public class Main{ pu...原创 2018-09-28 20:31:45 · 5439 阅读 · 1 评论