#算法的乐趣

算法笔记_047:复数运算(Java)

/目录1问题描述2解决方案编程实现两个复数的运算。设有两个复数和,则他们的运算公式为:  要求:(1)定义一个结构体类型来描述复数。  (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。  (3)必须使用结构体指针的方法把函数的计算结果返回。  说明:用户输入:运算符号(+,-,*,/)abcd.  输出:...

算法笔记_048:找零问题(Java)

/目录1问题描述2解决方案2.1动态规划法现需找零金额为n,则最少需要用多少面值为d1<d2<d3<...<dm的硬币?(PS:假设这m种面值d1<d2<d3<...<dm的硬币,其中d1=1,且每种硬币数量无限可得)本文编码思想参考自《算法设计与分析基础》第三版,具体讲...

算法笔记_049:奇偶数排序(Java)

/目录1问题描述2解决方案2.1一头一尾指针往中间扫描法2.2一前一后两个指针同时往后扫描法给定一个整数数组,请调整数组中数的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。具体代码如下:packagecom.liuzhen.array_2;publicclassOddEve...

算法笔记_050:硬币收集问题(Java)

/目录1问题描述2解决方案2.1动态规划法在n*m格木板中放有一些硬币,每格的硬币数目最多为一个,在木板左上方的一个机器人需要收集尽可能多的硬币并把它们带到右下方的单元格。每一步,机器人可以从当前的位置向右移动一格或向下移动一格。当机器人遇到一个有硬币的单元格时,就会将这枚硬币收集起来。设计一个算法找出机器人能找到的最...

算法笔记_051:荷兰国旗问题(Java)

/目录1问题描述2解决方案现有n个红白蓝三种不同颜色的小球,乱序排列在一起,请通过两两交换任意两个球,使得从左至右的球依次为红球、白球、蓝球。这个问题之所以叫荷兰国旗,是因为将红白蓝三色的小球弄成条状物,并有序排列后正好组成荷兰国旗。为了方便编码与讨论,用数字0表示红球,数字1表示白球,数字2表示蓝球,所以最后生成的排...

算法笔记_052:蓝桥杯练习Multithreading(Java)

/目录1问题描述2解决方案问题描述  现有如下一个算法:  repeatnitimes  yi:=y  y:=yi+1  endrepeat  令n[1]为你需要算加法的第一个数字,n[2]为第二个,...n[N]为第N个数字(N为需要算加法的数字个数),  并令y初始值为0,先令i=1运行这个算法(如上所示,重复n[...

算法笔记_053:最优二叉查找树(Java)

/目录1问题描述2解决方案在了解最优二叉查找树之前,我们必须先了解何为二叉查找树?引用自百度百科一段讲解:二叉排序树(BinarySortTree)又称二叉查找树(BinarySearchTree),亦称二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于或...

算法笔记_054:Prim算法(Java)

/目录1问题描述2解决方案2.1贪心法何为Prim算法?此处引用网友博客中一段介绍(PS:个人感觉网友的这篇博客对于Prim算法讲解的很清楚,本文与之相区别的地方在于具体实现代码的不同,该网友是使用C++实现,而本文是使用Java实现。其他理论讲解可以参考该网友的博客哦,具体链接看文末参考资料) 普里姆算法(...
代码星球 ·2021-02-09

算法笔记_055:蓝桥杯练习 Tricky and Clever Password (Java)

/目录1问题描述2解决方案问题描述  在年轻的时候,我们故事中的英雄——国王Copa——他的私人数据并不是完全安全地隐蔽。对他来说是,这不可接受的。因此,他发明了一种密码,好记又难以破解。后来,他才知道这种密码是一个长度为奇数的回文串。  Copa害怕忘记密码,所以他决定...

算法笔记_056:蓝桥杯练习 未名湖边的烦恼(Java)

/目录1问题描述2解决方案2.1递归法2.2递推法  问题描述  每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。  每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现...

算法笔记_057:蓝桥杯练习 最大的算式 (Java)

/目录1问题描述2解决方案问题描述  题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如:  N=5,K=2,5个数字分别为1、2、3、4、5,可以加成:  1*2*(3+4...

算法笔记_058:蓝桥杯练习 2的次幂表示(Java)

/目录1问题描述2解决方案问题描述  任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。  将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0  现在约定幂次用括号来表示,即a^b表示为a(b)  此时,137可表示为:2(7)+2(...

算法笔记_059:蓝桥杯练习 Anagrams问题(Java)

/目录1问题描述2解决方案问题描述  Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR&rd...

算法笔记_060:蓝桥杯练习 出现次数最多的整数(Java)

/目录1问题描述2解决方案问题描述  编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。  输入格式:第一行是一个整数...

算法笔记_061:蓝桥杯练习 字串统计(Java)

/目录1问题描述2解决方案问题描述  给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式  第一行一个数字L。  第二行是字符串S。  L大于0,且不超过S的长度。输出格式  一行,题目要求的字...
首页上一页...1213141516...下一页尾页