【力扣周赛】第 354 场双周赛
文章目录
- Q1:2784. 检查数组是否是好的
- 解法1——排序+模拟判断
- 解法2——哈希表计数+模拟判断
- Q2:6926. 将字符串中的元音字母排序
- Q3:6931. 访问数组中的位置使分数最大(线性DP)
- Q4:6922. 将一个数字表示成幂的和的方案数(01背包)
- 成绩记录
Q1:2784. 检查数组是否是好的
https://leetcode.cn/problems/check-if-array-is-good/description/
提示:
1 <= nums.length <= 100
1 <= num[i] <= 200
解法1——排序+模拟判断
class Solution {public boolean isGood(int[] nums) {Arrays.sort(nums);int n = nums.length - 1;for (int i = 0; i < n; ++i) {if (nums[i] != i + 1) return false;}return nums[n] == n;}
}
解法2——哈希表计数+模拟判断
在这里插入代码片
Q2:6926. 将字符串中的元音字母排序
https://leetcode.cn/problems/sort-vowels-in-a-string/
class Solution {public String sortVowels(String s) {List<Character> ls = new ArrayList<>();List<Integer> idxs = new ArrayList<>();int n = s.length();Set<Character> set = new HashSet<>(){{add('a');add('e');add('i');add('o');add('u');add('A');add('E');add('I');add('O');add('U');}};char[] chs = s.toCharArray();for (int i = 0; i < n; ++i) {if (set.contains(chs[i])) {ls.add(chs[i]);idxs.add(i);}}Collections.sort(ls);for (int i = 0; i < ls.size(); ++i) {chs[idxs.get(i)] = ls.get(i);}return new String(chs);}
}
哈希表还可以使用
Set<Character> set = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'));
或者使用 String 配合 .indexOf() 来代替哈希表。
Q3:6931. 访问数组中的位置使分数最大(线性DP)
https://leetcode.cn/problems/visit-array-positions-to-maximize-score/
分 奇偶 DP。
初始值设置成 -x 是为了抵消 奇偶性不同时 -x 带来的影响。
class Solution {public long maxScore(int[] nums, int x) {int n = nums.length;long even = -x, odd = -x;if (nums[0] % 2 == 0) even = nums[0];else odd = nums[0];for (int i = 1; i < n; ++i) {if (nums[i] % 2 == 0) even = Math.max(even, odd - x) + nums[i];else odd = Math.max(odd, even - x) + nums[i];}return Math.max(even, odd);}
}
Q4:6922. 将一个数字表示成幂的和的方案数(01背包)
https://leetcode.cn/problems/ways-to-express-an-integer-as-sum-of-powers/
class Solution {public int numberOfWays(int n, int x) {int[] dp = new int[n + 1];dp[0] = 1;final int mod = (int)1e9 + 7;for (int i = 1, k = (int)Math.pow(i, x); k <= n; ++i, k = (int)Math.pow(i, x)) {for (int j = n; j >= k; --j) {dp[j] = (dp[j] + dp[j - k]) % mod;}}return dp[n];}
}
成绩记录
题目都挺简单的。
但是,本次没有参加竞赛。
【力扣周赛】第 354 场双周赛相关推荐
- 20220219:力扣第72场双周赛题解
力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...
- 20210530:力扣第53场双周赛题解
力扣第53场双周赛题解 题目 思路与算法 代码实现 写在最后 题目 长度为三且各字符不同的子字符串 数组中最大数对和的最小值 矩阵中最大的三个菱形和 思路与算法 长度为三且各字符不同的子字符串:遍历查 ...
- 20201023:力扣第37场双周赛(上)
力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...
- 以赛促练-力扣第85场双周赛以及第307场周赛
文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...
- 力扣 第 87 场双周赛 ---心态爆炸场
第 87 场双周赛 T1 - 模拟 class Solution {public:int q[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, ...
- 力扣:第 304 场周赛
力扣:第 304 场周赛 究极手速场 6132.使数组中所有元素都等于零 问题解析 题意:一个数组,你每次可以将数组的值减少一个整数,这个整数小于等于数组的最小正整数,问多少次操作可以将数组全部变为0 ...
- LeetCode 第 30 场双周赛(477/2545,前18.7%,第2次全部通过)
文章目录 1. 比赛结果 2. 题目 1. LeetCode 5177. 转变日期格式 easy 2. LeetCode 5445. 子数组和排序后的区间和 medium 3. LeetCode 54 ...
- LeetCode第45场双周赛-解题报告
LeetCode第45场双周赛-解题报告 A. 唯一元素的和 原题链接 https://leetcode-cn.com/problems/sum-of-unique-elements/ 解题思路 因为 ...
- 【双周赛】第74场双周赛
第74场双周赛 6020. 将数组划分成相等数对 6021. 字符串中最多数目的子字符串 6022. 将数组和减半的最少操作次数 6023. 用地毯覆盖后的最少白色砖块 6020. 将数组划分成相等数 ...
最新文章
- Mybatis实现多对多关联组合查询
- 【Codeforces】 2A - Winner (map)
- Spring Security实现登录权限控制,记住我等功能
- cocos2d-x win8下的环境配置和建立项目
- java分布式学习路线
- 2014 网选 上海赛区 hdu 5047 Sawtooth
- idea打war的问题
- python设置格式模板
- 在下拉菜单中,传递的value参数为 id时,如何拿到其 label值?
- git 切换分支_git 入门教程之分支总览
- python元素分类_Python 练习 - 元素分类
- python导出项目_使用Python项目生成所有依赖包的清单方式
- 摩尔庄园不同服务器账号互通吗,摩尔庄园手游服务器互通吗?摩尔庄园手游不同区可以一起玩吗?...
- 西瓜创客_西瓜创客_西瓜创客下载安装_西瓜创客app安卓版下载_好趣手游网
- NMOS管和PMOS管开关控制电路原理及应用
- linux更新opengl驱动下载,支持OpenGL 3.2 NVIDIA全新Linux驱动发布
- Python之多张图片拼接
- IL汇编语言介绍(译)
- 基于B/S模式的设备管理系统开发
- 文件夹自动生成html画廊,在 Photoshop 中创建 Web 照片画廊