每日算法
飞舞的大象
这个作者很懒,什么都没留下…
展开
-
每日算法(2)——完数
1、完数介绍 完数(Perfect Number)又称完全数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。 参考百度。2、算法思路 (1)for循环end-begin+1次 (2)获取当前数number的真因子之和sum (3)比较sum与nu...原创 2018-04-15 16:00:50 · 1083 阅读 · 0 评论 -
每日算法(9)——回文字符串
1、回文字符串介绍 回文字符串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文字符串。 参考百度。2、算法思路 (1)以二分之一的位置为基准,依次比较两边对应的字符; (2)字符串倒置后直接比较。3、具体代码package com.peter.algorithm.other;import org.junit.Te...原创 2018-04-20 19:04:35 · 539 阅读 · 0 评论 -
每日算法(8)——去掉字符串中重复字符
1、算法思路 (1)先将字符串转换为字符数组,然后利用set不能存储重复对象的特性进行去重; (2)遍历字符串,若当前位置i处的字符在字符串中首次出现的位置firstIndex等于其最后出现的位置lastIndex,则说明当前字符只有一个;若当前位置i处的字符不止一个,选取首次出现的字符作为新字符串中的字符,则之后的重复字符就不满足firstIndex == i。2、具体代码...原创 2018-04-20 18:59:57 · 3437 阅读 · 0 评论 -
每日算法(7)——字符或单词统计
1、介绍 TreeMap中的数据可以按照ASCII码自动排序,但是对中文排序支持较差,参考blog进行处理。 英文文本中可能有不同的符号{“.”, ” “, “?”, “!”,”\”“, “:”, “’”},因此需进行替换处理。 统计英文单词时需要统一为小写。2、算法思路 (1)由于TreeMap集合具有不能保存重复对象,且可以按ASCII码自动排序的...原创 2018-04-20 17:59:21 · 212 阅读 · 0 评论 -
每日算法(1)——水仙花数
1、水仙花数介绍 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153) 参考百度。2、算法思路 (1) 获取当前数number的位数digit (2) for循环digit次,进行幂运算并求和sum (3) 比较sum与number3、具体代码pac...原创 2018-04-13 21:04:29 · 1316 阅读 · 0 评论 -
每日算法(6)——字符串逆序输出
1、Java函数实现字符串逆序输出的几种方法 (1)使用StringBuffer类中的reverse()方法将字符串逆序; (2)利用String类中的toCharArray()转换成字符数组,然后逆序输出数组; (3)利用String类中的toCharArray()转换成字符数组,将数组二分并交换两边的字符; (4)遍历字符串,从头部开始逐个正序放入字符串中; (...原创 2018-04-19 12:24:34 · 1222 阅读 · 0 评论 -
每日算法(5)——正整数分解质因数
1、分解质因数介绍 每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。 参考百度。2、算法思路 先判断数num是否为合数,如果是,选择最小的质数k=2,进行分解质因数的过程: (1)如果k小等于num,程序继续执行; (2)如果num能被k整除,说明k是num的一个因数,并用num除以k的商作为新的正整数nu...原创 2018-04-18 14:44:14 · 4188 阅读 · 1 评论 -
每日算法(4)——两个变量交换
1、算法思路 (1)利用中间变量交换数据 (2)两个数先进行求和,然后相减进行数据交换 (3)利用位运算的方式进行数据交换(一个数异或同一个数两次,结果还是那个数)2、具体代码package com.peter.algorithm.other;import org.junit.Test;public class VariablExchange { @T...原创 2018-04-16 21:25:07 · 490 阅读 · 0 评论 -
每日算法(3)——素数
1、素数介绍 素数又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 参考百度。2、算法思路 (1)for循环end-begin+1次 (2)确定当前数number能否被其他自然数整除 (3)如果不能为素数;否则为合数3、具体代码package com.peter.algorithm.oth...原创 2018-04-15 16:34:34 · 187 阅读 · 0 评论 -
每日算法(10)——最大公约数和最小公倍数
1、两个整数的最大公约数和最小公倍数 (1)最大公约数参考百度 ① 辗转相除法——用m除以n,然后用n代替m,余数remainder代替n,能够整除时m就是最大公约数 ② 更相减损术——始终用较大的数减较小的数,直至差为零 ③ 穷举法——先获得较小的数min,然后递减遍历,当能被m和n同时整除时的min就是最大公约数 ④ 递归算...原创 2018-04-21 15:43:05 · 304 阅读 · 0 评论