From 242bd0d70382185f96f4c9a1939b04b0913ee445 Mon Sep 17 00:00:00 2001 From: changshou83 <1369548156@qq.com> Date: Thu, 24 Nov 2022 08:45:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(lc):=20=E6=AF=8F=E6=97=A5=E4=B8=80?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04\347\232\204\344\270\252\346\225\260.js" | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 "lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/24-795-\345\214\272\351\227\264\345\255\220\346\225\260\347\273\204\347\232\204\344\270\252\346\225\260.js" diff --git "a/lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/24-795-\345\214\272\351\227\264\345\255\220\346\225\260\347\273\204\347\232\204\344\270\252\346\225\260.js" "b/lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/24-795-\345\214\272\351\227\264\345\255\220\346\225\260\347\273\204\347\232\204\344\270\252\346\225\260.js" new file mode 100644 index 0000000..fdaa41b --- /dev/null +++ "b/lc solutions/\346\257\217\346\227\245\344\270\200\351\242\230/2022-11/24-795-\345\214\272\351\227\264\345\255\220\346\225\260\347\273\204\347\232\204\344\270\252\346\225\260.js" @@ -0,0 +1,36 @@ +// 将数组中的数分为三类,0:小于left,1:大于等于left,小于等于right,2:大于right +// 双指针:计算出1,2的数量减去2 +function numsSubarrayBoundedMax(nums, l, r) { + let res = 0, + last1 = 0, + last2 = 0; + for (let i = 0; i < nums.length; i++) { + if (nums[i] >= left && nums[i] <= right) { + last1 = i; + } else if (nums[i] > right) { + last2 = i; + last1 = -1; + } + + if (last1 !== -1) { + res += last1 - last2; + } + } + return res; +} + +// 计数:计算出0,1的数量减去0 +function numsSubarrayBoundedMax(nums, l, r) { + return count(nums, right) - count(nums, left - 1); +} + +// 返回最大值小于等于lower的子数组数目 +function count(nums, lower) { + let res = 0, + cur = 0; + for (const x of nums) { + cur = x < lower ? cur + 1 : 0; + res += cur; + } + return res; +}