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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步