ARTS- 20200713-20200719
Posted wkmcyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARTS- 20200713-20200719相关的知识,希望对你有一定的参考价值。
日历有点奇怪,显示今天是 7 月 24 了都。 :)
Alg
https://leetcode-cn.com/problems/count-number-of-nice-subarrays/
- 遍历所有子数组。
- 时间复杂度 : O(n^3)
- 空间复杂度 : O(1) - 从上面的思路进行截取,对于从 i 开始的子序列,只要在其中包含的奇数达到了 k 以后,后面所有偶数的序列都是一个满足要求的序列。第一个节点从 i 变成 i+1 时候,根据其节点数据是奇数还是偶数,在进行不同的处理:偶数,直接增加与上次一样的数量;奇数,继续移动尾结点。
- 时间复杂度 : O(n)
- 空间复杂度 : O(1)
Rev
??????????
Tip
重构的提示:
进行复杂代码解耦拆分的时候,现状一般是 A+B 耦合在一起,有互相依赖。 这里说一种比较无脑的源码解耦方法(但是并不是逻辑解耦)。 我们这里假设 A 和 B 是两个类,B 原来作为 A 的内部类来使用。
- 找出 A 和 B 之间互相依赖的部分,通常是一些变量,既被 A 读写,也被 B 读写。
- 将这些依赖变量抽成一个新的类 C ,加入到 B 的构造函数里(或者是通过方法 set)。
- A 自己新建一个 C ,将方法都传入,并且将 C 传入 B 中。
目标达成, 完成了 A 和 B 关于这些共同变量的 代码解耦。 但是这并不是逻辑解耦,实际分析代码依旧会让人百思不得其解,因为逻辑上 A B都依赖 C 里的数据,并且都可以读写,这本身就是一种逻辑上的依赖。
Share
后补
以上是关于ARTS- 20200713-20200719的主要内容,如果未能解决你的问题,请参考以下文章