LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)
文章目錄
- 1. 比賽結(jié)果
- 2. 題目
- 1. LeetCode 5456. 在區(qū)間范圍內(nèi)統(tǒng)計(jì)奇數(shù)數(shù)目 easy
- 2. LeetCode 5457. 和為奇數(shù)的子數(shù)組數(shù)目 medium
- 3. LeetCode 5458. 字符串的好分割數(shù)目 medium
- 4. LeetCode 5459. 形成目標(biāo)數(shù)組的子數(shù)組最少增加次數(shù) hard
1. 比賽結(jié)果
雙周賽題目比較簡(jiǎn)單。第一題沒(méi)仔細(xì)看數(shù)據(jù)范圍,暴力超時(shí)一次,最后一題卡了一會(huì)。繼續(xù)加油!
全國(guó)排名: 273 / 2767,9.87%;全球排名: 819 / 8677,9.44%
2. 題目
1. LeetCode 5456. 在區(qū)間范圍內(nèi)統(tǒng)計(jì)奇數(shù)數(shù)目 easy
題目鏈接
給你兩個(gè)非負(fù)整數(shù) low 和 high 。請(qǐng)你返回 low 和 high 之間(包括二者)奇數(shù)的數(shù)目。
示例 1: 輸入:low = 3, high = 7 輸出:3 解釋:3 到 7 之間奇數(shù)數(shù)字為 [3,5,7] 。示例 2: 輸入:low = 8, high = 10 輸出:1 解釋:8 到 10 之間奇數(shù)數(shù)字為 [9] 。提示: 0 <= low <= high <= 10^9解題:
- 超時(shí)解,數(shù)據(jù)太大了,不能模擬
- 正解,按奇偶討論
2. LeetCode 5457. 和為奇數(shù)的子數(shù)組數(shù)目 medium
題目鏈接
給你一個(gè)整數(shù)數(shù)組 arr 。請(qǐng)你返回和為 奇數(shù) 的子數(shù)組數(shù)目。
由于答案可能會(huì)很大,請(qǐng)你將結(jié)果對(duì) 10^9 + 7 取余后返回。
示例 1: 輸入:arr = [1,3,5] 輸出:4 解釋:所有的子數(shù)組為 [[1],[1,3],[1,3,5],[3],[3,5],[5]] 。 所有子數(shù)組的和為 [1,4,9,3,8,5]. 奇數(shù)和包括 [1,9,3,5] ,所以答案為 4 。示例 2 : 輸入:arr = [2,4,6] 輸出:0 解釋:所有子數(shù)組為 [[2],[2,4],[2,4,6],[4],[4,6],[6]] 。 所有子數(shù)組和為 [2,6,12,4,10,6] 。 所有子數(shù)組和都是偶數(shù),所以答案為 0 。示例 3: 輸入:arr = [1,2,3,4,5,6,7] 輸出:16示例 4: 輸入:arr = [100,100,99,99] 輸出:4示例 5: 輸入:arr = [7] 輸出:1提示: 1 <= arr.length <= 10^5 1 <= arr[i] <= 100解題:
- 記錄和為奇數(shù)、偶數(shù)的次數(shù),注意初始時(shí)偶數(shù)次數(shù)為1個(gè)(和為0)
3. LeetCode 5458. 字符串的好分割數(shù)目 medium
題目鏈接
給你一個(gè)字符串 s ,一個(gè)分割被稱為 「好分割」 當(dāng)它滿足:將 s 分割成 2 個(gè)字符串 p 和 q ,它們連接起來(lái)等于 s 且 p 和 q 中不同字符的數(shù)目相同。
請(qǐng)你返回 s 中好分割的數(shù)目。
示例 1: 輸入:s = "aacaba" 輸出:2 解釋:總共有 5 種分割字符串 "aacaba" 的方法,其中 2 種是好分割。 ("a", "acaba") 左邊字符串和右邊字符串分別包含 1 個(gè)和 3 個(gè)不同的字符。 ("aa", "caba") 左邊字符串和右邊字符串分別包含 1 個(gè)和 3 個(gè)不同的字符。 ("aac", "aba") 左邊字符串和右邊字符串分別包含 2 個(gè)和 2 個(gè)不同的字符。 這是一個(gè)好分割。 ("aaca", "ba") 左邊字符串和右邊字符串分別包含 2 個(gè)和 2 個(gè)不同的字符。 這是一個(gè)好分割。 ("aacab", "a") 左邊字符串和右邊字符串分別包含 3 個(gè)和 1 個(gè)不同的字符。示例 2: 輸入:s = "abcd" 輸出:1 解釋:好分割為將字符串分割成 ("ab", "cd") 。示例 3: 輸入:s = "aaaaa" 輸出:4 解釋:所有分割都是好分割。示例 4: 輸入:s = "acbadbaada" 輸出:2提示: s 只包含小寫(xiě)英文字母。 1 <= s.length <= 10^5解題:
- 先左邊1個(gè)字符計(jì)數(shù),右邊剩下的字符計(jì)數(shù)
- 雙指針遍歷字符串,左邊+,右邊-,種類相同時(shí) ans+1
4. LeetCode 5459. 形成目標(biāo)數(shù)組的子數(shù)組最少增加次數(shù) hard
題目鏈接
給你一個(gè)整數(shù)數(shù)組 target 和一個(gè)數(shù)組 initial ,initial 數(shù)組與 target 數(shù)組有同樣的維度,且一開(kāi)始全部為 0 。
請(qǐng)你返回從 initial 得到 target 的最少操作次數(shù),每次操作需遵循以下規(guī)則:
- 在 initial 中選擇 任意 子數(shù)組,并將子數(shù)組中每個(gè)元素增加 1 。
答案保證在 32 位有符號(hào)整數(shù)以內(nèi)。
示例 1: 輸入:target = [1,2,3,2,1] 輸出:3 解釋:我們需要至少 3 次操作從 intial 數(shù)組得到 target 數(shù)組。 [0,0,0,0,0] 將下標(biāo)為 0 到 4 的元素(包含二者)加 1 。 [1,1,1,1,1] 將下標(biāo)為 1 到 3 的元素(包含二者)加 1 。 [1,2,2,2,1] 將下表為 2 的元素增加 1 。 [1,2,3,2,1] 得到了目標(biāo)數(shù)組。示例 2: 輸入:target = [3,1,1,2] 輸出:4 解釋:(initial)[0,0,0,0] -> [1,1,1,1] -> [1,1,1,2] -> [2,1,1,2] -> [3,1,1,2] (target) 。示例 3: 輸入:target = [3,1,5,4,2] 輸出:7 解釋:(initial)[0,0,0,0,0] -> [1,1,1,1,1] -> [2,1,1,1,1] -> [3,1,1,1,1] -> [3,1,2,2,2] -> [3,1,3,3,2] -> [3,1,4,4,2] -> [3,1,5,4,2] (target)。示例 4: 輸入:target = [1,1,1,1] 輸出:1提示: 1 <= target.length <= 10^5 1 <= target[i] <= 10^5解題:
- 數(shù)組末尾添加個(gè)最小值0
- 遍歷數(shù)組遇到下降的,次數(shù)+下降的差值
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode 1537. 最大得分(
- 下一篇: LeetCode 1055. 形成字符串