中级班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

思路:右上角开始找

浙公网安备 33010602011771号