2401. 最长优雅子数组;1111. 有效括号的嵌套深度;2134. 最少交换次数来组合所有的 1 II

2401. 最长优雅子数组

核心思想:滑动窗口。如何知道当前值与以前的值是否and为0很重要,这是这道题目的关键,and操作会把1变成0,但是不会把0变成1,所以当前值x要和前面的值两两and为0意味着,你要使前面的值的有1的位变为0,所以只需要把前面的值或起来和当前值and即可,然后用滑动窗口维护子数组。

2401. 最长优雅子数组;1111. 有效括号的嵌套深度;2134. 最少交换次数来组合所有的 1 II_第1张图片

 1111. 有效括号的嵌套深度

核心思想:左括号增加深度,右括号减少深度,谁深度小优先给谁加深度,谁深度大优先给谁减少深度即可。

2401. 最长优雅子数组;1111. 有效括号的嵌套深度;2134. 最少交换次数来组合所有的 1 II_第2张图片

 2134. 最少交换次数来组合所有的 1 II

核心思想:类似滑动窗口,维护一个长度为cnt的窗口,然后枚举每次要进窗口和出窗口的值,同时维护交换次数即可。

2401. 最长优雅子数组;1111. 有效括号的嵌套深度;2134. 最少交换次数来组合所有的 1 II_第3张图片

 

你可能感兴趣的:(数据结构,python)