/* BEGIN */ #include using std::vector; #define INF 1e6 class Solution { public: int numSubarrayProductLessThanK(vector& nums, int k) { int cnt = 0; int l = 0, r = 0; // two pointers int prod = 1; while (r < nums.size()) { prod *= nums[r]; while (prod >= k && l <= r) { prod /= nums[l]; l++; } cnt += r - l + 1; r++; } return cnt; } }; /* END */ #include int main() { Solution *sol = new Solution(); vector vec = {10, 5, 2, 6}; int ans = sol->numSubarrayProductLessThanK(vec, 100); printf("%d\n", ans); delete sol; return 0; }