中级班1

题目1:

 

 思路:

 

 

双指针:让绳子的左侧断点来到每一个点,L左边界,R是有边界,R从L开始往右移动,判断R是否能来到下一个点 可以继续移动

当前判断完后,L往下走一个位置,R在往后走,看能走几个位置

----------------------------------------------------------------------------2-----------------------------------------------------------------------------------------

题目2:

 

 普通解: 尽可能的使用8类型的袋子

优化解:  超过24时就不对了

 

 

题目3:

先手后手吃草,每次只能吃4的次方的草,随机给出草的数量N,谁先吃完同一个N谁赢

 

题目4:

 

 思路:

 分成左右侧,每次左侧一个位置R,其余都是G

两个位置左侧RG 右侧G,左侧RR右侧G

 

优化:创建辅助数组, 预处理数组, 先计算出0-i上的G的个数,在计算i-N上的R的个数 下次更改时,直接从这个两个数组拿数据

 

 例题5:

 

 

思路: 每到有1 的点开始计算从这个点出发倒最大的边长中间有没有构成正方形

 

 优化:预处理 构造辅助数组

创建两个验证数组R,D ;R是计算每个点的右边的连续的1的个数包括他自己,D数组是计算每个点下面连续1的个数,包括自己

然后再三层for循环中验证时, 直接从辅助信息拿值 

 

题目6:

 

 

思路:二进制,

先将函数改为等概率返回0-1,我们想要1~7 之间的数,也可转化为0~6 -- 》 6 最大可有三位2进制 表示,所以,我们进行三次 0,1 调用,生成三位,转换为十进制

如果3位数的十进制是7  则从新做

推广:把给出的函数加工为0~1 发生器 ,然后构造给出的范围

问3推广: 调用两次给的函数,00,11 从做,01,10 分别表示0  ,,p*(1-p),1(1-p)*p;返回 ;这样概率是想等的

 

题目7:

 

 

 思路:

左树没有 ,右树N-1个的情况

左树1,右树N-2个的情况

左树2,右树N-3个的情况

 ...

左树i,右树N-I-1个 

穷举

 

 

 

动态规划:

 

 

例题8: 678

思路: 认证完整括号字符串的方法:

设置个变量count,从左往右遍历满足两个条件为完整:

1.count遍历过程中 都大于=0  --》 如果图中出现不小于0的时候,说明多了右括号

2.count最后等于0

解题:

创建个变量ans记录需要多少个右括号,当count <0时,ans++,count =0在继续遍历

最后的返回结果:ans+ count

 

 

 

第二节课

题1:532

 

 思路:用map存储所有的数字,遍历map让后让他+差值, 在查找这个数字在不在map中

题目2:

 

 

 

 

操作:直接求大集合的累加和,排序是为了更好的查找

 

 题目3:

 

 

思路:和上题差不多,认证时count的最大值就是深度

题目4:找最长的括号字串  32

 

 

思路:求每个元素结尾的情况下的最长字串

 

 

 

 

 

 

题目5:

 

 思路:辅助栈,且栈中元素要求从小到大排序

 

题目6:91

 

 写过:动态

 

 

 题目7:

 

 略

题目8:04剑指offer

 

 思路:右上角开始找

 

posted on 2022-04-04 11:13  _Zhangg  阅读(43)  评论(0)    收藏  举报

导航