20220911- LC第310场周赛
20220911- LC第310场周赛
讨论:https://leetcode.cn/circle/discuss/s55Iwu/
6176. 出现最频繁的偶数元素(AC)
如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1 。
输入:nums = [0,1,2,2,4,4,1]
输出:2
解释:
数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。
返回最小的那个,即返回 2 。
示例 2:
输入:nums = [4,4,4,9,2,4]
输出:4
解释:4 是出现最频繁的偶数元素。
示例 3:
输入:nums = [29,47,21,41,13,37,25,7]
输出:-1
解释:不存在偶数元素。
1 <= nums.length <= 2000
0 <= nums[i] <= 105
class Solution {
public:int mostFrequentEven(vector<int>& nums) {sort(nums.begin(),nums.end(),greater<int>());unordered_map<int,int> cnt;int maxCnt = 0;int res = -1;for(int i : nums){cnt[i]++;if(i % 2 == 0 && cnt[i] >= maxCnt){maxCnt = cnt[i];res = i;}}return res;}
};
6177. 子字符串的最优划分
给你一个字符串 s ,请你将该字符串划分成一个或多个 子字符串 ,并满足每个子字符串中的字符都是 唯一 的。也就是说,在单个子字符串中,字母的出现次数都不超过 一次 。
注意,划分后,原字符串中的每个字符都应该恰好属于一个子字符串。
输入:s = “ssssss”
输出:6
解释:
只存在一种可行的划分方法 (“s”,“s”,“s”,“s”,“s”,“s”) 。
1 <= s.length <= 105
s 仅由小写英文字母组成
int partitionString(string s) {unordered_map<char,int> umap;int res = 1;for(char c : s){umap[c]++;if(umap[c] > 1){res++;umap.clear();umap[c] = 1;}}return res;}
6178. 将区间分为最少组数
给你一个二维整数数组 intervals ,其中 intervals[i] = [lefti, righti] 表示 闭 区间 [lefti, righti] 。
你需要将 intervals 划分为一个或者多个区间 组 ,每个区间 只 属于一个组,且同一个组中任意两个区间 不相交 。
如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是 相交 的。比方说区间 [1, 5] 和 [5, 8] 相交。
输入:intervals = [[5,10],[6,8],[1,5],[2,3],[1,10]]
输出:3
解释:我们可以将区间划分为如下的区间组:
输入:intervals = [[1,3],[5,6],[8,10],[11,13]]
输出:1
解释:所有区间互不相交,所以我们可以把它们全部放在一个组内。
1 <= intervals.length <= 105
intervals[i].length == 2
1 <= lefti <= righti <= 106
熟悉的区间类问题,完全想不到用优先队列可以分组,有些类似于253会议室问题,还是做太少了。
static bool cmp(vector<int> &lhs, vector<int> &rhs){return lhs[0] < rhs[0];}int minGroups(vector<vector<int>>& inv) {sort(inv.begin(), inv.end(), cmp);//用一个优先队列维护每个组最大的终点priority_queue<int, vector<int>, greater<int>> pq; pq.push(inv[0][1]);for(int i = 1; i < inv.size(); i++){//发生重叠,新增组终点if(pq.top() >= inv[i][0]){pq.push(inv[i][1]);}//没发生重叠,更新当前组终点else{pq.pop();pq.push(inv[i][1]);}}return pq.size();}
20220911- LC第310场周赛相关推荐
- [LeetCode周赛复盘] 第 310 场周赛20220911
[LeetCode周赛复盘] 第 310 场周赛20220911 一.本周周赛总结 二. [Easy] 6176. 出现最频繁的偶数元素 1. 题目描述 2. 思路分析 3. 代码实现 三.[Medi ...
- LeetCode第 310 场周赛
文章目录 前言 第86场双周赛情况 题目复盘+题解 题1:6176. 出现最频繁的偶数元素[easy] 题2:6176. 出现最频繁的偶数元素[medium] 题3:6178. 将区间分为最少组数[m ...
- Leetcode第 310 场周赛 补打
Leetcode 第310场周赛 自己赛后打了一下,记录了一下时间,大概15min A 3题,第四题是写不出来,然后学习了一天线段树(真的强). 思路: 1.排序后统计偶数的数目 2.遍历扫一遍,用直 ...
- 力扣周赛310场题解
力扣周赛310场题解 前言 6176. 出现最频繁的偶数元素 6177. 子字符串的最优划分 前言 今天参加了力扣的第310场周赛,也是感觉到了这周的题的一个难度,有些题有想法,但是实际上让我去写的时 ...
- letcode第319场周赛
letcode第319场周赛 6233. 温度转换 给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度,以 摄氏度(Celsius)为单位. 你需要将摄氏度转换为 开氏度(Kelvin ...
- 记录 22.9.25 第312场周赛1~3
记录 22.9.25 第312场周赛1~3 LC周赛 四道题拿下两道 继续努力! 第三道差一点,第四道 并查集 看不懂,继续学习吧!努力奋斗. 6188. 按身高排序 题目链接:6188. 按身 ...
- LeetCode228场周赛解题报告
LeetCode228场周赛解题报告 生成交替二进制字符串的最少操作数 原题链接 https://leetcode-cn.com/contest/weekly-contest-228/problems ...
- LeetCode第 227 场周赛题解
LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...
- 20220307:力扣第283场周赛(上)
力扣第283场周赛(上) 题目 思路与算法 代码实现 写在最后 题目 Excel 表中某个范围内的单元格 向数组中追加 K 个整数 思路与算法 第一题直接模拟即可,注意作为char的数字也是可以直接自 ...
- 20220228:力扣第282场周赛(下)
力扣第282场周赛(下) 题目 思路与算法 代码实现 写在最后 题目 完成旅途的最少时间 完成比赛的最少时间 思路与算法 完成旅途的最少时间: 二分模板题,注意初始化左右边界的话,速度会提升很多. 完 ...
最新文章
- 【图论专题】无向图的双连通分量
- 如何将APACHE许可证应用于您的工作
- Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
- bzoj1385: [Baltic2000]Division expression
- 苏老师首播3小时!超500人观看!录屏!源码!PPT……你要的都在这里!
- mysql 小雨_Mysql数据库
- macOS中安装docker
- Scala零基础教学【61-80】
- 程序设计与算法----枚举之完美立方
- 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏(C#解法)
- return 0可以不加吗_拼多多开店可以不交保证金? 拼多多0元开店是真的吗?
- Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory Android
- python画好看的图-Python竟能画这么漂亮的花,帅呆了(代码分享)
- 太原理工计算机组成原理报告,太原理工计算机组成原理考试题.pdf
- android 横屏字体变小,android屏幕大小,字体大小,横屏竖屏切换问题
- Python 读取 操作 使用 db文件
- MATLAB颜色的使用
- python调用百度地图实现导航_利用python和百度地图API实现数据地图标注
- IT历史上被引述最多的10句名人名言
- Ruoyi框架学习总结--总览篇