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] 。
示例 2:
**輸入:** nums = [1,1,1,1,1]
**輸出:** [1,2,3,4,5]
**解釋:** 動態和計算過程為 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。
示例 3:
**輸入:** nums = [3,1,2,10,1]
**輸出:** [3,4,6,16,17]
class solution
};
5437.不同整數的最少數目
給你乙個整數陣列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 兩種整數。
class solution
return 0;
}};
5438.製作 m 束花所需的最少天數
給你乙個整數陣列bloomday
,以及兩個整數m
和k
。
現需要製作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
class solution
return ans;
} int mindays(vector& bloomday, int m, int k) else
len = half;
}return a[first];
}};
5188.樹節點的第 k 個祖先
給你一棵樹,樹上有n
個節點,按從0
到n-1
編號。樹以父節點陣列的形式給出,其中parent[i]
是節點i
的父節點。樹的根節點是編號為0
的節點。
請你設計並實現getkthancestor``(int node, int k)
函式,函式返回節點node
的第k
個祖先節點。如果不存在這樣的祖先節點,返回-1
。
樹節點的第 _k
_個祖先節點是從該節點到根節點路徑上的第k
個節點。
示例:
!(
upload/uploads/2020/06/14/1528_ex1.png)
**輸入:**
["treeancestor","getkthancestor","getkthancestor","getkthancestor"]
[[7,[-1,0,0,1,1,2,2]],[3,1],[5,2],[6,3]]
**輸出:**
[null,1,0,-1]
**解釋:**
treeancestor treeancestor = new treeancestor(7, [-1, 0, 0, 1, 1, 2, 2]);
treeancestor.getkthancestor(3, 1); // 返回 1 ,它是 3 的父節點
treeancestor.getkthancestor(5, 2); // 返回 0 ,它是 5 的祖父節點
treeancestor.getkthancestor(6, 3); // 返回 -1 因為不存在滿足要求的祖先節點
class treeancestor
dep[0] = 1;
dfs(0, -1);
} void dfs(int u, int fa)
} int getkthancestor(int x, int k)
return f[x][0];
}};/** * your treeancestor object will be instantiated and called as such:
* treeancestor* obj = new treeancestor(n, parent);
* int param_1 = obj->getkthancestor(node,k);
*/
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 場周賽(C )
給你乙個陣列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 100...
第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...