算法
小小鱼34309335
这个作者很懒,什么都没留下…
展开
-
动态规划求一个数列的最长不下降子序列java版
用java实现的算法如下: public class Test {public static void main(String[] args) {// TODO 自动生成的方法存根int []a={3,18,7,14,10,12,23,41,16,24};//预查找的数组序列int []b={1,1,1,1,1,1,1,1,1,1};//用来记录点i到n的最长不下降子序原创 2016-07-06 15:52:53 · 3103 阅读 · 0 评论 -
Java实现二分查找
二分查找也叫折半查找,是一种查找算法, 要求数组是有序的。 代码如下: public static void main(String[] args) {// TODO 自动生成的方法存根int []a={10,13,18,20,25,30,35,47,56,62,68,71,79,82,85,90,99,100};int key=35;//key的值可以任意指原创 2016-11-25 10:56:00 · 263 阅读 · 0 评论 -
java实现猴子吃桃问题
/* * 猴子吃桃问题:猴子第一天摘下了若干个桃子,当即吃了一半,还不过瘾 * 又多吃了一个,第二天早上又将前一天剩下的桃子吃掉了一半,又多吃了一个, * 以后每天吃了前一天剩下的一半零一个。到第10天想吃时,发现只剩一个了 * 问猴子第一天一共摘了多少个桃子? */public static void main(String[] args) {// TOD原创 2016-11-24 10:23:13 · 530 阅读 · 0 评论 -
java实现约瑟夫环问题
在java中,有一种简便,可以实现约瑟夫环问题。使用集合类里面的arralylist来实现出来,由于每报到一个数,数到那个数的人就会被踢出去,所以可以使用arralylist的remove方法来实现。 具体代码如下: public class Test {public static void main(String[] args) {// TODO 自动生成的方法存原创 2016-11-21 22:08:55 · 521 阅读 · 0 评论 -
统计字符串中各个字符出现的次数
/* * 给定一个字符串str,返回str每个字符出现的次数,使用最原始的算法,本题虽然是java代码实现,但未使用集合类hashMap。方便C++程序猿也可以看懂。 */public class Test {public static void main(String[] args) {// TODO 自动生成的方法存根 Stri原创 2016-11-14 11:33:36 · 839 阅读 · 0 评论 -
去掉字符串中首次连续出现k个0的子串。
去掉字符串中首次连续出现k个0的子串。比如当s="A00B",k=2时,此时应该输出AB,当s="A0000B000",k=3的时候,应该返回A0000B而不是A0B000。这种字符串的处理问题一定要注意下标是否越界。代码如下:public class Test {public static void main(String[] args) {// TODO 自动生成的方法原创 2016-11-01 17:15:33 · 411 阅读 · 0 评论 -
java实现求两个字符串的最长公共子字符串
我的思想是遍历两个字符串,使用临时的stringbuffer存储查找过程中找到的子字符串,然后保存起来,一轮查找完成后,就和上次的保存的子字符串的长度进行比较,如果长,就更新保存的临时stringbuffer。此题要非常注意字符串的下标越界的情况发生。package 求两个字符串之间的最长公共子串;public class Test3 {public stati原创 2016-10-29 10:56:10 · 1185 阅读 · 0 评论 -
求两个数的最大公约数(普通方法和迭代法)
Java代码实现以下为主程序public static void main(String[] args) {// TODO 自动生成的方法存根int m=24,n=60;//fun1(m,n);System.out.println(fun1(m,n));//fun2(m,n);System.out.println(fun2(m,n));}方法一:原创 2016-10-19 10:31:16 · 1033 阅读 · 0 评论 -
交换两个数的值(使用中间变量和不使用中间变量的情况void main() { int a=1,b=3; //swap1(&a,&b); swap2(&a,&b); printf("a=%d, b=%)
只能在C/C++情况下实现,Java是传值运算,无法实现。以下为C代码,全部运行通过。#includevoid main(){int a=1,b=3;//swap1(&a,&b);//swap2(&a,&b);printf("a=%d, b=%d",a,b);}void swap1(int *p,int *q)//使用中间变量的情况{原创 2016-10-19 10:24:20 · 1103 阅读 · 0 评论 -
替换字符串中连续出现的指定字符串
给定三个字符串str,from和to,把str中所有的from的子串全部替换成to字符串,对连续出现的from的部分要求只替换成一个to字符串,返回最终的结果字符串。 举个栗子: str="123abc",from="abc",to="4567",返回"1234567"。 str="123",from="abc",to="456",返回"123"。 str原创 2016-11-07 21:05:56 · 320 阅读 · 0 评论 -
求字符串中数字子串求和
此问题网上已经有很多解答,但是说实话我还是看不懂, 然后自己揣摩了一下,修改成比较好理解的方式,现在贴出来:package 字符串中数字子串求和;public class Test2 {public static void main(String[] args) {// TODO 自动生成的方法存根String s="A-1B--2C--D6E";/原创 2016-10-26 22:22:16 · 338 阅读 · 0 评论 -
将整数字符串转成整数值
给定一个字符串s,如果字符串符合日常书写的整数形式,并且属于32位整数的范围,返回str所代表的整数值,否则返回0. 比如: s="123",则返回123. s="0123",则返回0. s="-123",则返回-123. s="-0",返回0. s="-",返回0. s="123a4",返回0. 首先,需要判断字符串中是否有非法字符,具体代码如下原创 2016-11-05 11:01:38 · 512 阅读 · 0 评论 -
判断两个字符串是否互为旋转词
比如:str="12345",str的旋转词有"12345","23451","34512","45123","51234"。下面为具体java代码实现:public class Test {public static void main(String[] args) {// TODO 自动生成的方法存根String s1="cdab";String s2=原创 2016-11-04 11:05:57 · 372 阅读 · 0 评论 -
C语言实现一维数组实现输出杨辉三角
输出杨辉三角,限定用1个一维数组完成 C语言代码实现如下: void main() { int n, i, j=0, a[100]; n = 5; printf("1"); printf("\n");//第一行结束 a[0] = a[1] = 1; printf("1"); printf("1"); printf("\n");//原创 2017-08-13 18:20:57 · 4198 阅读 · 1 评论