Leetcode 第310场周赛

自己赛后打了一下,记录了一下时间,大概15min A 3题,第四题是写不出来,然后学习了一天线段树(真的强)。
思路:
1、排序后统计偶数的数目
2、遍历扫一遍,用直接用二进制记录是否访问。
3、差分
4、线段树,动态更新,区间(num[i]-k,num[i]-1)查询最大值.

2404. 出现最频繁的偶数元素

class Solution {public:int mostFrequentEven(vector<int>& nums) {sort(nums.begin(),nums.end());int n = nums.size();int num = -1,cnt = 0;for(int i=0;i<n;) {if(nums[i]%2==0){int j = i+1;while(j<n&&nums[j]==nums[i]) j++;if(j-i>cnt) num = nums[i],cnt = j-i;i = j;} else {i++;}}return num;}
};
//18:46-18:52

6177. 子字符串的最优划分

class Solution {public:int partitionString(string s) {int ans = 1,val = 0;for(int i=0;i<s.size();i++) {if((val>>(s[i]-'a'))%2==0) {val += (1<<(s[i]-'a')); }else {val = (1<<(s[i]-'a'));ans++;}}return ans;}
};
//18:52-18:56

6178. 将区间分为最少组数

class Solution {public:int minGroups(vector<vector<int>>& intervals) {map<int,int> mp;for(int i=0;i<intervals.size();i++) {mp[intervals[i][0]] += 1;mp[intervals[i][1]+1] -= 1;}auto it = mp.begin();int ans = 1,dis = 0;while(it!=mp.end()) {dis += it->second;it++;ans = max(dis,ans);}return ans;}
};
//18:56-19:01

6206. 最长递增子序列 II

class Solution {public:int lengthOfLIS(vector<int>& nums, int k) {int ans = 1;for(int i=0; i<nums.size(); i++) {int cnt = query(root,0,N,max(0,nums[i]-k),nums[i]-1) + 1;update(root,0,N,nums[i],nums[i],cnt);ans = max(cnt,ans); }return ans;}struct Node {Node *left,*right;int val,lazy;Node():val(0),lazy(0),left(nullptr),right(nullptr){}};const int N = 1e9;Node *root = new Node();void update(Node *node, int start, int end,int l, int r, int val) {if(l<=start && r>=end) {node->val = val; // 每个节点存的是当前区间的最大值node->lazy = val; //懒惰标记,标记该节点下的子节点需要更新,用于遍历到时候在更新,return;}pushDown(node);int mid = (start + end) >> 1;// 右移除2if(l <= mid) update(node->left, start, mid, l, r, val); //[start,mid] [l,r] 有交集if(r > mid) update(node->right, mid+1, end, l, r, val); //[l,r] [mid+1,end] 有交集pushUp(node); }void pushDown(Node *node) {if(node->left==NULL) node->left = new Node();if(node->right==NULL) node->right = new Node();if(node->lazy==0) return; // 不需要向下更新node->left->val = node->lazy;node->right->val = node->lazy;node->left->lazy = node->lazy; node->right->lazy = node->lazy; node->lazy = 0;}void pushUp(Node *node) {// 每个节点存的是当前区间的最大值node->val = max(node->left->val, node->right->val);}int query(Node *node, int start, int end, int l, int r) {if(l<=start && r>=end) return node->val;pushDown(node);int mid = (start + end) >> 1, ans = 0;if(l<=mid) ans = query(node->left,start,mid,l,r);if(r>mid) ans = max(query(node->right,mid+1,end,l,r),ans);return ans;}
};
//19:01-19.09(go out for a while) 19:15-19:34(abandon)

Leetcode第 310 场周赛 补打相关推荐

  1. Leetcode第321场周赛补题

    Leetcode第321场周赛补题 第一题:6245. 找出中枢整数 - 力扣(LeetCode) 分析:由于数组中是差值为1的等差数列,所以可以直接用等差数列求和公式的朴素法更加简便的解决这题,,其 ...

  2. LeetCode第 310 场周赛

    文章目录 前言 第86场双周赛情况 题目复盘+题解 题1:6176. 出现最频繁的偶数元素[easy] 题2:6176. 出现最频繁的偶数元素[medium] 题3:6178. 将区间分为最少组数[m ...

  3. [LeetCode周赛复盘] 第 310 场周赛20220911

    [LeetCode周赛复盘] 第 310 场周赛20220911 一.本周周赛总结 二. [Easy] 6176. 出现最频繁的偶数元素 1. 题目描述 2. 思路分析 3. 代码实现 三.[Medi ...

  4. LeetCode第 227 场周赛题解

    LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...

  5. LeetCode 第 194 场周赛

    LeetCode 第 194 场周赛 数组异或操作 思路和代码 保证文件名唯一 思路及代码 避免洪水泛滥 思路及代码 找到最小生成树里的关键边和伪关键边 思路及代码 这次周赛比以往难很多. 数组异或操 ...

  6. LeetCode第187场周赛(Weekly Contest 187)解题报告

    差点又要掉分了,还好最后几分钟的时候,绝杀 AK.干巴爹!!! 第一题:思路 + 模拟暴力. 第二题:线性扫描. 第三题:双指针(滑动窗口) + 优先队列. 第四题:暴力每一行最小 k 个 + 优先队 ...

  7. Acwing第72场周赛+Leetcode第314场周赛

    Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...

  8. LeetCode第176场周赛(Weekly Contest 176)解题报告

    又是一周掉分之旅,我发现,LeetCode周赛的数据好水,所以有的时候,实在没思路,先暴力解决试试(即使分析出时间复杂度会超时),比如第二题和第三题都可以暴力通过,GG思密达. 这周主要使用了数据结构 ...

  9. [算法]LeetCode第194场周赛202006021

    第194场周赛 20200621 1486. 数组异或操作 题目描述1 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 ...

最新文章

  1. JDK8 Stream操作 collectingAndThen:根据对象的属性去重
  2. 使用TCP协议干活,需要校验位吗?
  3. Android内存分析工具:Memory Profiler
  4. springboot整合rabbitmq(搭建)
  5. requests模块发送带headers的Get请求和带参数的请求
  6. c#串口程序接收数据并打印_C#程序可打印各种数据类型的大小
  7. 计算机组成原理上机实验报告.doc,计算机组成原理第二次上机实验报告.doc
  8. stat函数_使用Python的stat函数有效地获得所有者,组和其他权限
  9. STM32 中断详解
  10. FF“流产”后 许家印开始了自己的造车之路
  11. 更加简洁且通用的ViewHolder写法
  12. python算方差_python 算方差
  13. JAVA面向对象 从0.5到1
  14. Admob的PIN码接收教程
  15. BUUCTF--[HarekazeCTF2019]Sqlite Voting
  16. C语言查询ask码的函数,ask码(字符转成ascii码)
  17. 24.4. Prompting
  18. PYNQ-Z2零基础学习详解
  19. RCEP正式生效,对东南亚的跨境电商将带来哪些影响?
  20. 判断字符串是否包含在某个集合中

热门文章

  1. STM32CbueMX之 USB下载更新固件Download Firmware Update(DFU)之一BootLoader程序编写
  2. Redis数据结构及其实现
  3. Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性...
  4. 互联网晚报 | 乐华娱乐回应被列入经营异常;美团否认广州骑手满员停止招聘;苹果iPhone 15 Pro设计图曝光...
  5. IP地址分类、子网划分和无分类编址
  6. 补码运算溢出判断方法
  7. 安卓手机管理_这个软件竟然能彻底解决安卓手机通知管理难题!
  8. 微信营销的7个重要流程
  9. 相机标定教程(使用Matlab工具箱)
  10. 东芝z20t笔记本如何u盘启动安装系统