![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 75
成长er
以苦作乐何人懂?逍遥自在断世愁
展开
-
比较a^b与b^a的大小
给你两个int型的正整数,比较a的b次方与b的a次方的大小。思路:这道题我们要用到高中所学的知识,当a>0&&b>0分别对a^b和b^a取对数=>blna alnb=>lna/a lnb/b=>lnx/x=>(求导)(1-lnx)/x^2=>x==e(零点)=> (0,e) 单增 (e,+00) 单减 当a原创 2017-12-20 17:29:59 · 14297 阅读 · 1 评论 -
常见排序算法合集2
上篇文章实现了冒泡,选择,插入,希尔,归并,上一篇:常见排序算法合集1这一篇则实现了剩下的快速,堆排,计数,桶排,基数话不多说,直接上代码,代码中都有注释,相信不难理解:package day01;import java.util.Random;public class AlgTest { static Random r=new Random(); static int[...原创 2019-09-08 11:18:05 · 186 阅读 · 0 评论 -
常用排序算法合集1
这里我将常用的十种排序算法进行归纳,并且提供代码的实现。本篇文章实现的有冒泡,选择,插入,希尔,归并,话不多说,详情请查看源码:package day01;import java.util.Random;public class AlgTest { static Random r=new Random(); static int[] array=new int[10]; p...原创 2019-09-07 12:05:17 · 313 阅读 · 0 评论 -
KMP算法的理解与认识
如果我们要找到一个子串在一个字符串第一次出现的位置,可以使用BF算法或者KMP。其中,BF算法的原理就是将子串字符与主串字符挨个比较,一旦不同,就返回到首个相同的字符的下一个在进行比较,直到全部相同位置。如:子串abac,主串ababacdac,其步骤如下:ababacdacaababacdacabababacdacabaababacdac aa...原创 2019-07-07 21:26:35 · 134 阅读 · 0 评论 -
算法深度学习2
题目描述:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数看到题目,第一反应就是暴力,但是我试了一下,直接爆内存。这里我参考了别人的代码,然后反向推导出这题的理解思路和解题过程。看了下文,你会和我一样惊叹这世上竟有如此神奇的代码和如此精妙的思路!分析题意:题目...原创 2019-04-16 17:56:58 · 446 阅读 · 0 评论 -
算法深度学习1
今天看到一道非常经典的题,题目很简单,求非负数1到N之间出现1的个数。这题用暴力的话直接爆内存,肯定不行。然后我仔细分析了一种比较认可的思路,其巧妙程度让我叹为观止。我们认真分析一下这题,1的出现位置不外乎个位,十位,百位,千位等等,所以我们可以采取的策略就是将所有的位置上的1出现的次数分别计算,然后再相加,最后得到的就是我们要的答案。比如随便举几个例子:N=5,那么个位上为1有哪...原创 2019-04-16 11:28:10 · 152 阅读 · 0 评论 -
24点游戏
24点游戏大家都应该玩过吧,就是有四张牌,四张牌都是1到10的正整数,要求你只能使用+ - * / ()是最终的表达式的结果为24比如四张牌是 1 3 6 9,那么(6-3)*(9-1)=24.如果这四个数可以算出24,就输出样例的表达式,如果不能,就输出no思路:这个题是个典型的dfs,总共的可能有4*4*4*4!=1536种,在最后需要判断()的地方,分几种情况,首先我们假设+原创 2017-12-20 18:40:25 · 487 阅读 · 0 评论 -
水田问题
Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot of samll squares. Water pipes are placed in these squares. Different square has a different type of翻译 2017-07-17 15:23:27 · 308 阅读 · 1 评论 -
马踏步问题
马踏步问题题目:输入第一行表示测试组数,第二行表示范围,第三行输入两个数表示起始位置,第四行表示终点位置。这题默认是一定能够到达终点位置的。思路:这题我们最佳方法是使用bfs,使用结构体的目的是为了使xy两个属性对应同一位置,首先入栈起始位置的坐标,并将top(代码里的r)加1,结束条件为出栈个数(代码里的l)大于或等于r。用一个新的结构体来表示经过移动后的位置,并判断该位置是否合法,如果原创 2017-07-17 14:23:08 · 320 阅读 · 2 评论 -
n皇后
n皇后问题题意:就是输入一个数,代表范围有多大,要求皇后之间 不能同一行,同一列,或在斜线上,最后输出总共有多少中走法。 思路:这题就是一道简单的dfs,每次查找的时候是一列一列的找,找的时候每次都判断是否合理,如果合理就查找下一列,否则就查找下一行(我是横坐标为x,纵坐标为y),每次到达n就计数器加一,最后计数器的值就是总的步数。原创 2017-07-17 10:21:54 · 240 阅读 · 0 评论 -
关于字符串的一些操作
1.求一个数组的最长递增非连续子序列的长度分析:当我们拿到一个题首先就要思考这道题考察的是什么?本题中,要求求的是非连续的子序列,说明什么呢?说明要回溯,既然要回溯我们就可以利用双重循环。同时要求的是最长子序列,所以要用到动态规划思路:我们利用dp[i]来保存每个位置当前所对应的最大长度,每次比较0~i之间的所有值同dp[i]的大小,如果比dp[i]大,则重新赋值,最后刷新最大长度的值。...原创 2019-09-16 22:02:43 · 159 阅读 · 0 评论