算法之旅
十一月de肖邦
这个作者很懒,什么都没留下…
展开
-
HJ67 24点游戏算法
问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入(本题含有多组样例输入。):4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字。输出:true or false示例:输入7 2 1 10输出truepublic class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in);原创 2021-05-24 22:30:40 · 805 阅读 · 1 评论 -
HJ69 矩阵乘法
如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。矩阵的大小不超过100*100输入描述:输入包含多组数据,每组数据包含:第一行包含一个正整数x,代表第一个矩阵的行数第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数第三行包含一个正整数z,代表第二个矩阵的列数之后x行,每行y个整数,代表第一个矩阵的值之后y行,每行z个整数,代表第二个矩阵的值输出描述:对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果示例:输入原创 2021-05-23 22:01:12 · 250 阅读 · 0 评论 -
HJ93 数组分组
输入int型数组,询问该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,输出true;不满足时输出false。输入描述:第一行是数据个数,第二行是输入的数据输出描述:返回true或者false示例:输入41 5 -5 133 5 8输出truefalse说明第一个样例:第一组:5 -5 1,第二组:1第二个样例:由于3和5不能放在同一组,所以不存在一种分法。public cl原创 2021-05-23 09:55:32 · 577 阅读 · 0 评论 -
HJ102 字符统计
输入一个只包含小写英文字母和数字的字符串,按照不同字符统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASCII码由小到大排序输出。本题含有多组样例输入输入描述:一个只包含小写英文字母和数字的字符串。输出描述:一个字符串,为不同字母出现次数的降序表示。若出现次数相同,则按ASCII码的升序输出。示例:输入aaddccdc1b1bbbbbbbbb输出cdab1说明:第一个样例里,c和d出现3次,a出现2次,但c的ASCII码比d小,所以先输出c,再输出d,最后输出a.pu原创 2021-05-22 10:46:59 · 228 阅读 · 0 评论 -
HJ103 Redraiment的走法
Redraiment是走梅花桩的高手。Redraiment可以选择任意一个起点,从前到后,但只能从低处往高处的桩子走。他希望走的步数最多,你能替Redraiment研究他最多走的步数吗?示例:2 5 1 5 4 5输出:3说明:6个点的高度各为 2 5 1 5 4 5如从第1格开始走,最多为3步, 2 4 5从第2格开始走,最多只有1步,5而从第3格开始走最多有3步,1 4 5从第5格开始走最多有2步,4 5所以这个结果是3。public static void main(String[原创 2021-05-22 09:14:28 · 323 阅读 · 0 评论 -
辗转相除/更相减损/移位,求最大公约数
本文总结自:《漫画算法:小灰的算法之旅》魏梦舒public class Main{ public static void main(String[] args){ int a = 35; int b = 21; System.out.println(getGreatestCommonDivisor(a, b)); System.out.println(subtract(a, b)); System.out.print原创 2021-05-20 21:44:35 · 113 阅读 · 0 评论 -
动态规划
1.金矿问题有一位国王拥有5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人人数也不同。设黄金储量golden = {400, 500, 200, 300, 350},需要参与的工人数为person = {5, 5, 3, 4, 3}。如果参与挖矿的工人的总数是10。每座金矿要么全挖,要么不挖,不能派出一半人挖取一半的金矿。要求用程序求出,最多能挖到多少黄金?public static void main(String[] args) { int w = 10; in原创 2021-04-26 21:51:29 · 92 阅读 · 0 评论 -
BitMap的原理和实现
1.原理:32位机器上,对于一个整型数,比如int a=1, int占4字节,1字节=8位(1 byte = 8 bit), 在内存中占32bit位,这是为了方便计算机的运算。如果每个数字用int存储,那就是20亿个int,因而占用的空间约为 (2000000000*4/1024/1024/1024)≈7.45G如果按位存储就不一样了,20亿个数就是20亿位,占用空间约为 (2000000000/8/1024/1024/1024)≈0.233GBitMap使用1bit表示一个关键字的状态(可表示原创 2020-09-23 20:32:34 · 575 阅读 · 0 评论