
算法
渣渣高不会写Java
这个作者很懒,什么都没留下…
展开
-
关于递归的回溯操作
之前在看labuladonog的算法小抄时候看到了回溯算法,我没有搞明白为什么我之前写的递归问题没有使用这种回溯操作(原谅我做题少)附书上回溯模板 def backtrack(路径,选择列表): if 满足条件: result.add(路径) for 选择 in 选择列表: 做选择 backtrack(路径,选择列表) 撤销选择什么时候下没有回溯操作:01...原创 2021-12-08 22:52:02 · 844 阅读 · 1 评论 -
【蓝桥杯】烤鸡(java)
题目:在这插入图片描述思路:思路是比较简单的,每种调料每次最少放一种,每种调料都有1,2,3克调料品,三种情况,结果其实就像三叉树一样。我们只需要使用递归算法来模拟一颗三叉树即可,满足美味程度的路径的值之和就是方案代码实现:需求:由于需要存储方案数量,那么需要一个arraylist来存储数组,还需要一个十个大小的数组来存储在递归时生成的方案。最后递归的条件就是:首先分析一个情况,美味程度大于30,直接输出0.在写递归算法时要注意:1.变化的量:美味程度,存储方案数组,存储数组的array原创 2021-11-29 22:37:29 · 486 阅读 · 0 评论 -
【蓝桥杯】求n对括号的有效组合java
当n=3时,可能的组合有:(()()), ((())), ()(()), (())(), ()()()思路:当n等于1时:()当n等于2时:()() ,(())当n等于3时:()()(),()(()),(())(),((()))这种题目应该采用递推的方法,当n未到目标个数时,每种组合最多可能会产生三种情况但是可能会产生重复情况!!!不过我们使用Set集合就可以解决这个问题,因为加入到Set内部的数据是无法重复的。 public static Set<String> Te原创 2021-11-27 14:01:29 · 430 阅读 · 0 评论 -
【蓝桥杯】接水问题
学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1 到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打 开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k 马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即 j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若原创 2021-11-27 13:38:34 · 299 阅读 · 0 评论 -
算法之高精度减法【算法笔记】
高精度减法和加法其实比较相似要点:不够用就向前借位,前一位的1相当于后一位的10,假如前面没有数可以借位,减法得到的就是负数。模拟减法的核心if(a[i]<b[i]){ a[i+1]--; a[i]=a[i]+10;}c[i]=a[i]-b[i];这里我们和加法一样,依然采用先通过字符数组录入,再转换成数字依次存入数字数组内,并且也都是倒序存储,如对这个有疑问,为什么要倒序,看添加链接描述还有一些小问题:两个(不为负数)数进行减法,得到的数字位数是多少————最大和减数之间的原创 2021-02-23 11:13:03 · 316 阅读 · 0 评论 -
算法之详解高精度加法【算法笔记】
(我已经把优快云当作笔记本了~…,这里语言会浅显一点不想搞得很高级的样子)高精度是各类信息竞赛中的必会类型,高精度一般就是整数位太长,小数位太大,程序很难直接运算或表达。直接进入正题,不磨蹭,将问题分析一点点解决。Q1:为什么需要高精度c语言现有的类型无法存储,上图,看一眼即可Q2:如何实现加法,通过什么实现小学我们学过,加减乘除,对于每一位,满十进1,不满十直接相加即可。对于高精度的加法,采用的也是这个原理,我们可以通过数组来存储每一位,用数组来模拟加法,这样可以实现很大位的加法运算,下原创 2021-02-22 17:50:27 · 460 阅读 · 0 评论