2023每日刷题(五十七)
Leetcode—2963.统计好分割方案的数目
算法思想
参考灵神思路
实现代码
class Solution {
public:
long long mod = 1e9+7;
long long pow(long long x, int cnt) {
if(cnt == 0) {
return 1;
}
if(cnt == 1) {
return x % mod;
}
long long res = pow(x, cnt / 2);
if(cnt % 2) {
return res * res * x % mod;
}
return res * res % mod;
}
int numberOfGoodPartitions(vector<int>& nums) {
unordered_map<int, int> dict;
for(int i = 0; i < nums.size(); i++) {
dict[nums[i]] = i;
}
int maxR = 0, m = 0;
for(int i = 0; i < nums.size(); i++) {
maxR = max(maxR, dict[nums[i]]);
if(maxR == i) {
m++;
}
}
return pow(2, m-1);
}
};
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!