51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#算法的乐趣
算法笔记_032:最长回文串(Java)
/目录1问题描述2解决方案2.1中心扩展法2.2Manacher算法给定一个字符串,求它的最长回文子串的长度。 此处,首先枚举出回文串的中心位置,然后,再在该位置上分别向左和向右扩展,记录并更新得到的最长回文串的长度。具体代码如下:packagecom.liuzhen.string_1;impor...
代码星球
·
2021-02-09
算法
笔记
最长
回文
Java
算法笔记_033:十六进制转八进制(Java)
/目录1问题描述2解决方案2.1注意问题2.2具体实现代码 具体问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n(1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过...
代码星球
·
2021-02-09
算法
笔记
十六进制
八进制
Java
算法笔记_034:大整数乘法(Java)
/目录1问题描述2解决方案2.1蛮力法计算两个大整数相乘的结果。 packagecom.liuzhen.chapter5;importjava.math.BigInteger;publicclassBigNumber{/**参数A:进行乘法运算的大整数A,用字符串形式表示*参数B:进行乘法运算的另...
代码星球
·
2021-02-09
算法
笔记
整数
乘法
Java
算法笔记_035:寻找最小的k个数(Java)
/目录1问题描述2解决方案2.1全部排序法2.2部分排序法2.3用堆代替数组法2.4线性选择算法有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低。先对这n个整数进行快速排序,在依次输出前k个数。具体代码如下:packagecom.liuzhen.array_2;publicclassSearchMinK{//...
代码星球
·
2021-02-09
算法
笔记
寻找
小的
个数
算法笔记_036:预排序(Java)
/目录1问题描述2解决方案2.1检验数组中元素的唯一性2.2模式计算在计算机科学中,预排序是一种很古老的思想。实际上,对于排序算法的兴趣很大程度上是因为这样一个事实:如果列表是有序的,许多关于列表的问题更容易求解。显然,对于包含了排序操作,这种算法的时间效率依赖于所选用的排序算法的效率。对于预排序的具体思想应用请参考下...
代码星球
·
2021-02-09
算法
笔记
排序
Java
算法笔记_037:寻找和为定值的两个数(Java)
/目录1问题描述2解决方案2.1排序夹逼法输入一个整数数组和一个整数,在数组中查找两个数,满足他们的和正好是输入的那个整数。如果有多对数的和等于输入的整数,输出任意一对即可。例如,如果输入数组[1,2,4,5,7,11,15]和整数15,那么由于4+11=15,因此输出4和11。首先将整数数组,使用合并排序进行从小打到...
代码星球
·
2021-02-09
算法
笔记
寻找
定值
个数
算法笔记_038:特殊回文数(Java)
/目录1问题描述2解决方案2.180分解法2.2 网友标答解法问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n,编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个...
代码星球
·
2021-02-09
算法
笔记
特殊
回文
Java
算法笔记_039:杨辉三角形(Java)
/目录1问题描述2解决方案问题描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 11 121 1331...
代码星球
·
2021-02-09
算法
笔记
杨辉
三角形
Java
算法笔记_040:二进制幂(Java)
/目录1问题描述2解决方案2.1从左至右二进制幂2.2从右至左二进制幂使用n的二进制表示,计算a的n次方。此方法计算a的n次方具体思想,引用《算法设计与分析基础》第三版一段文字介绍: 具体代码如下:packagecom.liuzhen.chapter6;importjava.util.ArrayL...
代码星球
·
2021-02-09
算法
笔记
二进制
Java
算法笔记_041:寻找和为定值的多个数(Java)
/目录1问题描述2解决方案输入两个整数n和sum,要求从数列1,2,3,...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来。上述问题是典型的背包问题的应用,即先找出n个数的所有组合,再在这些组合中寻找组合数相加之和等于sum的组合,并依次输出这些组合中的数。具体代码如下:packageco...
代码星球
·
2021-02-09
算法
笔记
寻找
定值
个数
算法笔记_042:求最小公倍数(Java)
/目录1问题描述2解决方案何为最小公倍数?能同时被数字m和数字n整除的最小整数。例如,24和60的最小公倍数等于120。下面请编写相关函数实现求取数字m和n的最小公倍数。关于本文求解最小公倍数的思想,来自于《算法设计与分析基础》第三版上一段讲解,具体如下: 具体代码如下:packagecom.liuzhen....
代码星球
·
2021-02-09
算法
笔记
最小公倍数
Java
算法笔记_043:最大连续子数组和(Java)
/目录1问题描述2解决方案2.1蛮力枚举法2.2动态规划法给定一个整数数组,数组里可能有正数、负数和零。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如,如果输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},那么输出为该子数...
代码星球
·
2021-02-09
算法
笔记
最大
连续
数组
算法笔记_044:表达式计算求值(Java)
/目录1问题描述2解决方案问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式 输入一行,包含一个表达式。输出格式 输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。 &...
代码星球
·
2021-02-09
算法
笔记
表达式
计算
求值
算法笔记_045:币值最大化问题(Java)
/目录1问题描述2解决方案2.1动态规划法给定一排n个硬币,其面值均为正整数c1,c2,...,cn,这些整数并不一定两两不同。请问如何选择硬币,使得在其原始位置互不相邻的条件下,所选硬币的总金额最大。本文所写代码思想参考自《算法设计与分析基础》第三版上一段讲解,具体如下: 具体代码如下:pack...
代码星球
·
2021-02-09
算法
笔记
币值
最大化
问题
算法笔记_046:跳台阶问题(Java)
/目录1问题描述2解决方案2.1递归法2.2迭代法一个台阶总共有n级,如果一次可以跳1级,也可以跳2级,求总共有多少种跳法。如果整个台阶只有1级,则显然只有一种跳法。如果台阶有2级,则有两种跳法:一种是分两次跳,每次跳1级;另一种是一次跳2级。推广到一般情况。则可以把n级台阶时的跳法看成是n的函数,记为f(n)。当n&...
代码星球
·
2021-02-09
算法
笔记
台阶
问题
Java
首页
上一页
...
11
12
13
14
15
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他