算法日记
以梦为马|不负韶华
这个作者很懒,什么都没留下…
展开
-
【异或】 在算法中的多种应用
这篇文章写的非常详细原创 2021-05-17 09:20:28 · 98 阅读 · 0 评论 -
算法题收获汇总
PAT (Basic Level) 1002 写出这个数 收获:对于求一个整数的各个位置上数字的两种思路:用%/来求,将结果保存在数组中;也可以直接将其转换成字符串,字符串相当于一个只读char数组,又因为char和int可以隐式转换,所以用字符串数组中的元素减去‘0’即为其元素值对于与整数存在一一对应的关系,可以将其用数组存储起来利用下标进行访问;也可以采用流程控制语句进行判断。...原创 2021-04-26 13:27:04 · 246 阅读 · 0 评论 -
动态规划 02--不同路径问题
问题描述给出m行n列网格,有一个机器人从左上角(0,0)出发,每次可以向下或者向右走一步,问有多少种不同的方式到右下角。1.思路与01中的分析同理2.代码 public static int UniquePath(int m,int n) { int[,] f = new int[m,n]; for (int i = 0; i < m; i++) { for (.原创 2021-04-16 20:28:03 · 115 阅读 · 0 评论 -
动态规划 01-最少硬币数
题目描述总共有三种硬币2元,5元,7元,要求用最少的硬币数凑出27元。1.思路采用了动态规划的思路确定状态最重要的两点是最后一步和化为子问题;最后一步:我们虽然不知道最优策略是什么,但是我们可以确定的是最优策略肯定是k枚硬币,a1,a2,a3…ak加起来为27.所以一定有最后一枚硬币ak,除去这枚硬币,前边的硬币是27-ak;因为是最佳策略,所以27-ak所需的硬币数也是最少的。化为子问题:可以通过最后一步的分析,将问题转化成求27-ak所需要的最少硬币数;设f(27)表示所需的最少硬原创 2021-04-16 18:22:27 · 561 阅读 · 0 评论 -
算法--小和/逆序对问题
算法–小和问题问题描述:在一个数组中,把每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和例子: [1,3,4,2,5]1左边比1小的数,没有;3左边比3小的数,1;4左边比4小的数,1、3;2左边比2小的数,1;5左边比5小的数,1、3、4、2;所以小和为1+1+3+1+1+3+4+2=16代码实现1.暴力求解代码如下: public static int Sum(int[] nums) { int sum = 0原创 2021-04-12 19:50:38 · 157 阅读 · 0 评论