小算法
文章平均质量分 73
Army_War
这个作者很懒,什么都没留下…
展开
-
递归实现数的阶乘
/** * @author PLA 阶乘 */ public static void main(String[] args) { System.out.println("请输入一个数字:"); Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); System.out.println(i原创 2014-06-03 12:29:54 · 858 阅读 · 0 评论 -
一串首尾相连的珠子(m 个),有N 种颜色(N<=10),设计一个算法,取出其中一段,要求包含所有N 中颜色,并使长度最短。
转换:将颜色用数字表示出来,比如五种颜色可以用0到4表示,题目就演化为由N个数字 毫无顺序的连成一串,数字串长度为m,在这长度为m的数字串中,取出一段,包含 所有N个数字,且使之长度最短。分析原创 2014-07-25 19:51:29 · 1647 阅读 · 0 评论 -
请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。
不知道啥意思,用JAVA中Linkedlist实现链表,代码如下:原创 2014-07-25 20:52:14 · 2544 阅读 · 0 评论 -
.有一千万条短信,有重复,以文本文件的形式保 请用5 分钟时间,找出重复出现最多的前10 条。
1、.有一千万条短信,有重复,以文本文件的形式保 请用5 分钟时间,找出重复出现最多的前10 条。原创 2014-07-28 11:12:01 · 3244 阅读 · 0 评论 -
一个整数数组,长度为n,将其分为m份,使各份的和相等,求m 的最大值比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2
问题描述:一个整数数组,长度为n,将其分为m份,使各份的和相等,求m 的最大值比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1;{3,6}{2,4,3} m=2{3,3}{2,4}{6} m=3 所以m 的最大值为3原创 2014-07-28 17:33:18 · 3169 阅读 · 0 评论 -
一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数
public class findNum { /** * @param PLA * 题目:一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数 */ /*用二分法查找貌似就挺快*/ public static void main(String[] args) { // TODO原创 2014-07-28 23:40:30 · 1642 阅读 · 3 评论 -
卡特兰数
什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670转载 2014-07-28 17:56:46 · 1025 阅读 · 0 评论 -
求一个数组的最长递减子序列比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5, 4,3,2}
代码如下:public class Decrease { /** * @param PLA * */ /*算法描述: * 用动态规划解决此问题,设A为原数组,另设数组B(大小与A相同)做为辅助数组,其中 * B[i]用来存储以A[i]为结尾的最长递减子序列的长度,比如i=3,A[3]=2比其前面任何 * 元素都小,所以B[3]=4. * 可以得出:B[i]=原创 2014-07-28 19:52:35 · 3138 阅读 · 0 评论 -
和为n连续正数序列
题目:输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。原创 2014-07-29 12:15:22 · 822 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面。
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。原创 2014-07-30 12:56:17 · 649 阅读 · 0 评论 -
统计从1到n整数中1出现的次数
思想:按照位数分别进行统计原创 2014-06-03 12:23:33 · 854 阅读 · 0 评论 -
在字符串中找出连续最长的数字串
/** * @author PLA * 在字符串中找出连续最长的数字串 */ public static void main(String[] args) { String s = "fd76687dfsad69798796dgdg7902344342"; getNum(s); } public static void getNum(String s){ int原创 2014-05-30 18:56:10 · 888 阅读 · 0 评论 -
将整数字符串转换成整数输出(JAVA实现,不能用自带函数)
/** * @author PLA * 将整数字符串转换成整数输出 */ public static void main(String[] args) { String s = "-1456542"; change(s); } public static void change(String s){ boolean flag = true; long num原创 2014-05-30 12:56:38 · 1217 阅读 · 0 评论 -
字符串左旋
/** * @author PLA 字符串左旋 */ public static void main(String[] args) { String s = "abcdefghi"; char[] ch = s.toCharArray(); int m = 3; System.out.println("原字符串:" + s); swap(ch, 0, m); s原创 2014-06-02 20:26:58 · 860 阅读 · 0 评论 -
求一个矩阵中最大的二元矩阵
/** * @author PLA * 求一个矩阵中最大的二元矩阵 */ public static void main(String[] args) { int matrix[][] = {{1,2,0,3,4},{2,3,4,5,1},{1,1,5,3,0}}; getMaxMatrix(matrix); } public static void getMaxMat原创 2014-06-04 11:40:01 · 820 阅读 · 0 评论 -
给一串很长字符串,要求找到符合要求的字符串,类似“和谐”系统
实现一个挺高级的字符匹配算法: 给一串很长字符串,要求找到符合要求的字符串,例如目的串:123 1******3***2 ,12*****3 这些都要找出来 思路:原创 2014-06-03 19:04:13 · 990 阅读 · 0 评论 -
n 支队伍比赛,分别编号为0,1,2......n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中。。。
题目:n 支队伍比赛,分别编号为0,1,2......n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j 的队伍中更强的一支,所以w[i][j]=i 或者j,现在给出它们的出场顺序,并存储在数组order[n]中,比如order[n] = {4,3,5,8,1......},那么第一轮比赛就是4 对3, 5 对8。然胜者晋级,败者淘原创 2014-07-03 12:06:39 · 1893 阅读 · 0 评论 -
在一个字符串中找到第一个只出现一次的字符(JAVA实现)
/** * @author PLA * 在一个字符串中找到第一个只出现一次的字符 */ public static void main(String[] args) { String s = "dtoghohronogddddew"; int judge = find(s); if(judge!=-1) System.out.println(s.charAt(原创 2014-05-29 19:37:16 · 1436 阅读 · 0 评论 -
用天平(只能比较,不能称重)从一堆小球中找出其中唯一一个较轻的,使用x 次天平, 最多可以从y 个小球中找出较轻的那个,求y 与x 的关系式。
此为百度面试题,用三分法原创 2014-07-23 17:47:33 · 1827 阅读 · 0 评论 -
大量的URL 字符串,如何从中去除重复的,优化时间空间复杂度
1、如果内存足够的话,用hash表转载 2014-07-23 18:12:38 · 3626 阅读 · 0 评论 -
图的深度优先与广度优先遍历
import java.util.LinkedList;import java.util.Queue;public class Graph { /** * @PLA 图的遍历 */ private int num = 9;// 结点数 private boolean[] flag;// 存储结点是否遍历过 private String[] vertexs = { "A",原创 2014-07-23 17:10:15 · 740 阅读 · 0 评论 -
输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来.
/** * @author PLA * 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, * 使其和等于m ,要求将其中所有的可能组合列出来. */ public static void main(String[] args) { int m=27,n=20; comb(m,n); } public static void comb(i原创 2014-05-30 16:26:49 · 961 阅读 · 0 评论 -
字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串 abc、acb、bac、bca、cab 和cba。/*思路:考察递归 * /abc(1,1) * abc(0,0)\acb(1,2) * / bac(1,1) * / / *abc原创 2014-07-30 11:27:07 · 653 阅读 · 0 评论