码迷,mamicode.com
首页 > 其他好文 > 详细

ARTS- 20200713-20200719

时间:2020-07-24 21:42:30      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:新建   节点   构造   str   部分   com   http   a+b   开始   

日历有点奇怪,显示今天是 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 的内部类来使用。

  1. 找出 A 和 B 之间互相依赖的部分,通常是一些变量,既被 A 读写,也被 B 读写。
  2. 将这些依赖变量抽成一个新的类 C ,加入到 B 的构造函数里(或者是通过方法 set)。
  3. A 自己新建一个 C ,将方法都传入,并且将 C 传入 B 中。

目标达成, 完成了 A 和 B 关于这些共同变量的 代码解耦。 但是这并不是逻辑解耦,实际分析代码依旧会让人百思不得其解,因为逻辑上 A B都依赖 C 里的数据,并且都可以读写,这本身就是一种逻辑上的依赖。

Share

后补

ARTS- 20200713-20200719

标签:新建   节点   构造   str   部分   com   http   a+b   开始   

原文地址:https://www.cnblogs.com/wkmcyz/p/13374179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!