LeetCode 第 193 場周賽(C )

2021-10-08 01:15:30 字數 2737 閱讀 5383

給你乙個陣列nums。陣列「動態和」的計算公式為:runningsum[i] = sum(nums[0]…nums[i])

請返回nums的動態和。

示例 1:

輸入:nums = [1,2,3,4]

輸出:[1,3,6,10]

解釋:動態和計算過程為 [1, 1+2, 1+2+3, 1+2+3+4] 。

1 <= nums.length <= 1000

-10^6 <= nums[i] <= 10^6

迭代求和即可。

給你乙個整數陣列arr和乙個整數k。現需要從陣列中恰好移除k個元素,請找出移除後陣列中不同整數的最少數目。

示例 1:

輸入:arr = [5,5,4], k = 1

輸出:1

解釋:移除 1 個 4 ,陣列中只剩下 5 一種整數。

示例 2:

輸入:arr = [4,3,1,1,3,3,2], k = 3

輸出:2

解釋:先移除 4、2 ,然後再移除兩個 1 中的任意 1 個或者三個 3 中的任意 1 個,最後剩下 1 和 3 兩種整數。

給你乙個整數陣列bloomday,以及兩個整數mk

現需要製作m束花。製作花束時,需要使用花園中 相鄰的k朵花 。

花園中有n朵花,第i朵花會在bloomday[i]時盛開,恰好 可以用於 一束 花中。

請你返回從花園中摘m束花需要等待的最少的天數。如果不能摘到m束花則返回-1

示例 1:

輸入:bloomday = [1,10,3,10,2], m = 3, k = 1

輸出:3

解釋:讓我們一起觀察這三天的花開過程,x 表示花開,而 _ 表示花還未開。

現在需要製作 3 束花,每束只需要 1 朵。

1 天後:[x, _, _, _, _] // 只能製作 1 束花

2 天後:[x, _, _, _, x] // 只能製作 2 束花

3 天後:[x, _, x, _, x] // 可以製作 3 束花,答案為 3

示例 2:

輸入:bloomday = [1,10,3,10,2], m = 3, k = 2

輸出:-1

解釋:要製作 3 束花,每束需要 2 朵花,也就是一共需要 6 朵花。而花園中只有 5 朵花,無法滿足製作要求,返回 -1 。

示例 3:

輸入:bloomday = [7,7,7,7,12,7,7], m = 2, k = 3

輸出:12

解釋:要製作 2 束花,每束需要 3 朵。

花園在 7 天後和 12 天後的情況如下:

7 天後:[x, x, x, x, _, x, x]

可以用前 3 朵盛開的花製作第一束花。但不能使用後 3 朵盛開的花,因為它們不相鄰。

12 天後:[x, x, x, x, x, x, x]

顯然,我們可以用不同的方式製作兩束花。

示例 4:

輸入:bloomday = [1000000000,1000000000], m = 1, k = 1

輸出:1000000000

解釋:需要等 1000000000 天才能採到花來製作花束

示例 5:

輸入:bloomday = [1,10,2,9,3,8,4,7,5,6], m = 4, k = 2

輸出:9

bloomday.length == n

1 <= n <= 10^5

1 <= bloomday[i] <= 10^9

1 <= m <= 10^6

1 <= k <= n

LeetCode第193場周賽

class solution class solution return que.size 這裡yxc 寫的極好 yxc 用區間來處理 常數大部分情況下更小 class solution intmindays vector int bs,int m,int k vector int l n 2 r ...

LeetCode 第 193 場周賽

5436.一維陣列的動態和 給你乙個陣列nums。陣列 動態和 的計算公式為 runningsum i sum nums 0 nums i 請返回nums的動態和。示例 1 輸入 nums 1,2,3,4 輸出 1,3,6,10 解釋 動態和計算過程為 1,1 2,1 2 3,1 2 3 4 示例 ...

第193場周賽

class solution return res class solution map maps new treemap int len arr.length int max 1 for int i 0 i else int totoalnum maps.size arraylist sorted...