1248 - Count Number of Nice Subarrays

 JAVA

  • class Solution {
        public int numberOfSubarrays(int[] nums, int k) {
            int n = nums.length;
            int[] cnt = new int[n + 1];
            cnt[0] = 1;
            int ans = 0, t = 0;
            for (int v : nums) {
                t += v & 1;
                if (t - k >= 0) {
                    ans += cnt[t - k];
                }
                cnt[t]++;
            }
            return ans;
        }
    }

C++

  • class Solution {
    public:
        int numberOfSubarrays(vector<int>& nums, int k) {
            int n = nums.size();
            vector<int> cnt(n + 1);
            cnt[0] = 1;
            int ans = 0, t = 0;
            for (int& v : nums) {
                t += v & 1;
                if (t - k >= 0) {
                    ans += cnt[t - k];
                }
                cnt[t]++;
            }
            return ans;
        }
    };

Comments