算法
_陈同学_
一颗搞Java的螺丝钉
展开
-
对动态规划算法的理解
文章目录一、动态规划的思想二、动态规划的性质三、实现过程四、经典模型:1.线性模型2.区间模型3.树状模型五、实现的套路动态规划(Dynamic programming,简称DP)一、动态规划的思想首先,动态规划最重要的是掌握他的思想,动态规划的核心思想是把原问题分解成子问题进行求解,也就是分治的思想。那么什么问题适合用动态规划呢?我们通过一个现实中的例子,来理解这个问题。大家可能在公司...原创 2020-04-29 23:09:26 · 892 阅读 · 0 评论 -
算法4:数列极差问题(贪心算法)
文章目录问题描述:代码及说明问题描述:在黑板上写了N个正整数作成的一个数列,进行如下操作:每次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1,如此下去直到黑板上剩下一个数,在所有按这种方式,最后得到的数中,最大的计作Max、最小的计做Min,则该数列的极差定义为M=Max-Min问题分析:通过3,5,7三个数字讨论(3*5+1)7+1=113 ((37)+1)5+1=1...原创 2020-03-17 20:06:21 · 8348 阅读 · 1 评论 -
算法3:Babelfish(分治法+快速排序)
文章目录问题描述代码及说明问题描述你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。输入:首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行。每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开。而且在词典中不会有某个外语单词出现超过两次。词典之后是一个空行,然后给出一个由外语单词组成的文档,文档不超...原创 2020-03-17 20:02:05 · 850 阅读 · 0 评论 -
算法2:整数反转(考虑反转溢出问题)
文章目录题目描述解题思路和代码菜鸟的第一个思路菜鸟进阶解题思路菜鸟学习大神算法体会题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例2:输入: -123输出: -321示例3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 2...原创 2020-03-10 14:49:20 · 1071 阅读 · 0 评论 -
算法1:两数之和(分析不同算法的时间空间复杂度)
文章目录题目描述方法一:暴力法方法二:两遍哈希表方法三:一遍哈希表三种方法运行效率以及所占内存的比较题目描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + ...原创 2020-03-08 22:35:12 · 1696 阅读 · 0 评论