1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /* BEGIN */
- #include <vector>
- using std::vector;
- #define INF 1e6
- class Solution {
- public:
- int numSubarrayProductLessThanK(vector<int>& 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 <cstdio>
- int main() {
- Solution *sol = new Solution();
- vector<int> vec = {10, 5, 2, 6};
- int ans = sol->numSubarrayProductLessThanK(vec, 100);
- printf("%d\n", ans);
- delete sol;
- return 0;
- }
|