日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode--1248. 统计「优美子数组」(java)

發布時間:2024/7/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode--1248. 统计「优美子数组」(java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給你一個整數數組?nums 和一個整數 k。

如果某個 連續 子數組中恰好有 k 個奇數數字,我們就認為這個子數組是「優美子數組」。

請返回這個數組中「優美子數組」的數目。

?

示例 1:

輸入:nums = [1,1,2,1,1], k = 3
輸出:2
解釋:包含 3 個奇數的子數組是 [1,1,2,1] 和 [1,2,1,1] 。
示例 2:

輸入:nums = [2,4,6], k = 1
輸出:0
解釋:數列中不包含任何奇數,所以不存在優美子數組。
示例 3:

輸入:nums = [2,2,2,1,2,2,1,2,2,2], k = 2
輸出:16
?

提示:

1 <= nums.length <= 50000
1 <= nums[i] <= 10^5
1 <= k <= nums.length

代碼:

class?Solution?{

????public?int?numberOfSubarrays(int[]?nums,?int?k)?{

????????if?(nums?==?null?||?nums.length?==?0?||?nums.length?<?k)?return?0;

????????//?雙指針

????????int?left?=?0,?right?=?0;

????????int?count?=?0;?//?連續子數組中奇數的個數

????????int?res?=?0;

????????int?preEven?=?0;?//?記錄第一個奇數前面的偶數個數

????????while?(right?<?nums.length){

????????????//?連續子數組中奇數個數不夠

????????????if?(count?<?k){

????????????????if?(nums[right]?%?2?!=?0)?count++;

????????????????right++;?//?移動右側指針

????????????}

????????????//?連續子數組中奇數個數夠了,看第一個奇數前面有多少個偶數

????????????if?(count?==?k)?{

????????????????preEven?=?0;

????????????????while?(count?==?k){

????????????????????res++;

????????????????????if?(nums[left]?%?2?!=?0)?count--;

????????????????????left++;

????????????????????preEven++;

????????????????}

????????????}?else?res?+=?preEven;?//?每次遇到?right?為偶數的時候就進行累加?相當于區間前面偶數個數?*?后面偶數個數

????????}

????????return?res;

????}

}

總結

以上是生活随笔為你收集整理的Leetcode--1248. 统计「优美子数组」(java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。