LeetCode 2055. 蜡烛之间的盘子(前缀和)
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個(gè)長桌子,桌子上盤子和蠟燭排成一列。
給你一個(gè)下標(biāo)從 0 開始的字符串 s ,它只包含字符 '*' 和 '|' ,其中 '*' 表示一個(gè) 盤子 ,'|' 表示一支 蠟燭 。
同時(shí)給你一個(gè)下標(biāo)從 0 開始的二維整數(shù)數(shù)組 queries ,其中 queries[i] = [lefti, righti] 表示 子字符串 s[lefti...righti] (包含左右端點(diǎn)的字符)。
對(duì)于每個(gè)查詢,你需要找到 子字符串中 在 兩支蠟燭之間 的盤子的 數(shù)目 。
如果一個(gè)盤子在 子字符串中 左邊和右邊 都 至少有一支蠟燭,那么這個(gè)盤子滿足在 兩支蠟燭之間 。
比方說,s = "||**||**|*" ,查詢 [3, 8] ,表示的是子字符串 "*||**|" 。子字符串中在兩支蠟燭之間的盤子數(shù)目為 2 ,子字符串中右邊兩個(gè)盤子在它們左邊和右邊 都 至少有一支蠟燭。
請(qǐng)你返回一個(gè)整數(shù)數(shù)組 answer ,其中 answer[i] 是第 i 個(gè)查詢的答案。
示例 1:
示例 2:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/plates-between-candles
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
- 求出每個(gè)位置左側(cè)的最近的 | 的位置,同理右側(cè)的也是一樣
- 然后找到區(qū)間左端點(diǎn)右側(cè)最近的 | 的位置,右端點(diǎn)左側(cè)最近的 | 的位置
- 利用前綴和做差求解 * 的數(shù)量
356 ms 138.7 MB C++ 2021/11/06 10:25
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 2055. 蜡烛之间的盘子(前缀和)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 2156. 查找给定哈
- 下一篇: 《数据结构与算法之美》学习汇总