leetcode
0001
很容易发现可以倒过来找得到所以hash表
0003
i 处的重复字符串等于i-1 处+1 (子串是自己打破还是上面打破的)可以把一个维度压缩掉 观察左边界也可以发现左边界位置单调递增 可以更改定义使用类似指针的做法
00011
需要发现一个遍历顺序,是由小的那一边来决定的,h*i
00030 hard
我需要划分按长度划分 词频统计的是字母到频率 这里是子串到频率 大量边界条件 尽量先不考虑多个循环合并这样不容易出错
00015
朴素就是n^3 自然考虑一个sort nlogn 如果第一个数大于0则直接退出 当其中两个确定的时候另一个也被确定 i与i’是不能重复的 但是i和j可以重复 1 ,2 ,3
00042
刻画这个水坑,水坑可以横着叠出来还是竖着叠出来 竖着叠出来 1.扫两遍取i处能看到的左侧最大值和右侧最大值取min -1 2.指针法,观察解i和i+1,总是能用两个指针描述,就可以描述成左右两个指针维护Lmax和Rmax 横着叠出来 考虑单调队列对于插入的i我我需要能找到比他大的(横着一块块扫过去)
0049
统计词频直接存hash,然后
0128
放到hash表 如果能按一个顺序遍历就可以 比如说1到n 用一个带顺序的set再每次都count set可以计算长度
0283
左指针前面是已完成 右支架把非0交换过去 l=r=0 swap(l,r) 原地交换没问题 如果交换l++ 一直都r++
0438
维护一个核心区域的词频然后向右和向左(可能会增加或减少某个词频) 维护differ判断是不是为0即可
0560
转化成区间性质->相扣