713.cc 735 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* BEGIN */
  2. #include <vector>
  3. using std::vector;
  4. #define INF 1e6
  5. class Solution {
  6. public:
  7. int numSubarrayProductLessThanK(vector<int>& nums, int k) {
  8. int cnt = 0;
  9. int l = 0, r = 0; // two pointers
  10. int prod = 1;
  11. while (r < nums.size()) {
  12. prod *= nums[r];
  13. while (prod >= k && l <= r) {
  14. prod /= nums[l];
  15. l++;
  16. }
  17. cnt += r - l + 1;
  18. r++;
  19. }
  20. return cnt;
  21. }
  22. };
  23. /* END */
  24. #include <cstdio>
  25. int main() {
  26. Solution *sol = new Solution();
  27. vector<int> vec = {10, 5, 2, 6};
  28. int ans = sol->numSubarrayProductLessThanK(vec, 100);
  29. printf("%d\n", ans);
  30. delete sol;
  31. return 0;
  32. }