最大字符串配对数目【遍历】O(n^2)遍历,按题意遍历。classSolution:de
(资料图片仅供参考)
最大字符串配对数目
【遍历】O(n^2)遍历,按题意遍历。
【哈希表】题目保证words中字符串互不相同,可以遍历words,遍历的同时把words[i] [::-1]加入哈希表中,下次遍历时判断是否在哈希表中。
构造最长的新字符串
【公式】AB不会改变AA和BB交替连接的上限。
【记忆化搜索】定义dfs(x,y,z,k),其中x,y,z为AA、BB、AB的剩余数量,k=0,1,2表示上一个字符是AA\BB\AB,此时可以构造出字符串的最大长度,状态转移是:AA后面能接BB,BB后面能接AA或BB,AB后面能接AA或AB。
字符串连接删减字母
【三维DP-记忆化搜索实现】定义dfs(i,j,k),i为当前处理字符串的下标,j和k表示第一个字符和最后一个字符,对于每个字符串有两种连接方式:res1 = dfs(i + 1, j, w[-1]) - (w[0] == k)表示将当前字符串w连接到已连接字符串的后面,保持j不变,k更新为w的最后一个字符,然后删除相同字符;res2 = dfs(i + 1, w[0], k) - (w[-1] == j)表示将已连接字符串连接到当前字符串w的后面,将j更新为w的第一个字符,保持k不变,然后删除相同字符。
【三维DP-递推实现】
统计没有收到请求的服务器数目
【离线 + 滑动窗口】首先按照时间排序,方便后续滑动窗口处理时间区间内的logs。然后遍历排序后的queries,维护窗口内服务器请求数量和未收到请求的服务器数目,当logs[r] [1] <= q时,说明时间在当前查询的时间区间内,进入窗口,请求+1,如果是服务器的第一个请求,将未收到请求的服务器数目减一,更新右边界;当Logs[l] [1] < q - x是,说明时间在当前查询的时间区间之外,服务器的请求需要离开窗口,对应服务器请求数量减一,如果服务器请求数量变成0,则将未收到请求的服务器数目加1,更新左边界。