Welcome To Ke_scholar's|

Ke_scholar

园龄:2年2个月粉丝:30关注:10

2023-07-23 18:50阅读: 5评论: 0推荐: 0

leetcode第 109 场双周赛

6930. 检查数组是否是好的 - 力扣(LeetCode)

首先判断数组长度是不是最大值 + 1, 然后排个序,判断0到n - 2是不是都是1到最大值的一个排列,满足这些返回true就行了

class Solution {
public:
bool isGood(vector<int>& num) {
int ma = 0;
for(auto i : num){
ma = max(ma, i);
}
if(ma + 1!= num.size())
return false;
sort(num.begin(), num.end());
for(int i = 0;i < num.size() - 2;i ++){
if(num[i] + 1 != num[i + 1])
return false;
}
return true;
}
};

6926. 将字符串中的元音字母排序 - 力扣(LeetCode)

先把s里的元音字母取出来,然后排序,最后替换掉s中的元音字母即可

class Solution {
public:
string sortVowels(string s) {
string os = "";
string yuan = "aeiouAEIOU";
for(auto i : s ){
if(yuan.find(i) != -1){
os += i;
}
}
sort(os.begin(),os.end());
int cnt = 0;
for(int i = 0;i < s.size();i ++){
if(yuan.find(s[i]) != -1){
s[i] = os[cnt++];
}
}
return s;
}
};

6931. 访问数组中的位置使分数最大 - 力扣(LeetCode)

\(i\)可以跳掉任意\(i < j\)\(j\)的位置,要使得\(i\)处分数最大,则就是求\(j\)处的分数最大,所以我们可以从最后转移到初始位置,分别从奇数和偶数转移

class Solution {
public:
long long maxScore(vector<int>& nums, int x) {
long long n = nums.size();
vector<vector<long long>> dp(2, vector<long long> (n , 0));
dp[nums[n - 1] & 1][n - 1] = nums[n - 1];
dp[!(nums[n - 1] & 1)][n - 1] = max(0,nums[n - 1] - x);
for(long long i = n - 2;i >= 0;i --){
dp[0][i] = dp[0][i + 1];
dp[1][i] = dp[1][i + 1];
dp[nums[i] & 1][i] += nums[i];
dp[0][i] = max(dp[0][i], dp[1][i] - x);
dp[1][i] = max(dp[1][i], dp[0][i] - x);
}
return dp[nums[0] & 1][0];
}
};

6922. 将一个数字表示成幂的和的方案数 - 力扣(LeetCode)

01 背包模板题。把正整数的 \(x\) 次幂看成一个物品,求的就是把 \(n\) 件物品凑成 \(n\) 的方案数。复杂度 \(\mathcal{O}(n^2)\)

class Solution {
public:
int numberOfWays(int n, int x) {
const int mod = 1e9 + 7;
vector<int> p(n + 1);
for(int i = 1;i <= n;i ++){
long long res = pow(i, x);
p[i] = res % mod;
}
vector<int> dp(n + 1);
dp[0] = 1;
for(int i = 1;i <= n;i ++){
for(int j = n;j >= p[i];j--){
dp[j] = (dp[j] + dp[j - p[i]]) % mod;
}
}
return dp[n];
}
};

本文作者:Ke_scholar

本文链接:https://www.cnblogs.com/Kescholar/p/17575725.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ke_scholar  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起