※ 引述《oin1104 (是oin的说)》之铭言:
: 题目 :
: 给你一串阵列
: 问你有多少子阵列
: 里面的奇数刚好有k个
: 思路 :
: 第一眼看到就sliding window
: 可是我是傲娇
: 所以我用hash+一点点前缀和的感觉去写
: 先在纪录里找有没有出现过now-k
: 加上他的数量
: 然后再记录出现的奇数数量now
: 这样就可以ㄌ
思路:
1.子阵列问题看起来很滑动窗口,每次把当前数字加入窗口,如果恰好有k个奇数就
会产生 (窗口第一个奇数 - 左边第一个偶数 + 1) 个 nice 子阵列,把他加总。
2.如果超过 k 个奇数就一直pop直到奇数数量等于k,然后找出新窗口的第一个
奇数位置。
java code