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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 525. 连续数组(前缀和+哈希)

發(fā)布時(shí)間:2024/7/5 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 525. 连续数组(前缀和+哈希) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 題目

給定一個(gè)二進(jìn)制數(shù)組, 找到含有相同數(shù)量的 0 和 1 的最長(zhǎng)連續(xù)子數(shù)組(的長(zhǎng)度)。

示例 1: 輸入: [0,1] 輸出: 2 說(shuō)明: [0, 1] 是具有相同數(shù)量01的最長(zhǎng)連續(xù)子數(shù)組。示例 2: 輸入: [0,1,0] 輸出: 2 說(shuō)明: [0, 1] ([1, 0]) 是具有相同數(shù)量01的最長(zhǎng)連續(xù)子數(shù)組。 來(lái)源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/contiguous-array 著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

2. 解題

類似題目:
LeetCode 560. 和為K的子數(shù)組(前綴和差分)
LeetCode 1248. 統(tǒng)計(jì)「優(yōu)美子數(shù)組」(要復(fù)習(xí))

  • 把0看成-1,找和為0的最長(zhǎng)長(zhǎng)度,跟560題差不多
  • 記錄前綴和,第一次出現(xiàn)時(shí),存入map,記錄下標(biāo)
  • 第二次出現(xiàn)時(shí),做差,中間的長(zhǎng)度就是和為0的區(qū)間
class Solution { public:int findMaxLength(vector<int>& nums) {int i, n = nums.size(), sum = 0, maxlen = 0;unordered_map<int,int> m;//sum, 第一次出現(xiàn)sum時(shí)的idxm[0] = -1;for(i = 0; i < n; ++i){if(nums[i])sum += 1;elsesum -= 1;if(!m.count(sum))m[sum] = i;elsemaxlen = max(maxlen, i-m[sum]);}return maxlen;} };

344 ms 78.5 MB

總結(jié)

以上是生活随笔為你收集整理的LeetCode 525. 连续数组(前缀和+哈希)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。