本文同步发表于 个人博客。

前言

感觉 leetcodeleetcodeleetcode 周赛不花时间,做一做还能保持一下手感,最重要的是能让人在周末早起。于是以后可能就会多打打 leetcodeleetcodeleetcode 了。

周赛273

AK时间: 21min

最终排名:

A 5963.反转两次的数字

给出数字 nnn,R(n)R(n)R(n) 表示 nnn 翻转后去掉前导零的结果,要求判断 R(R(n))R(R(n))R(R(n)) 是否等于 nnn。

0≤n≤1060\le n\le 10^60≤n≤106。

做法

判断 nnn 是否有后导 000,即 nnn 是否是 101010 的倍数即可,特判 n=0n=0n=0 的情况。

代码

class Solution {public:bool isSameAfterReversals(int num) {return (num == 0 || num % 10 != 0);}
};

B 5964. 执行所有后缀指令

模拟题

做法

模拟即可

代码

class Solution {public:vector<int> executeInstructions(int n, vector<int>& startPos, string s) {int m = s.size();vector<int> ans(m);for(int i = 0; i < m; i++){int ok = 0;int x = startPos[0], y = startPos[1];for(int j = i; j < m; j++){if(s[j] == 'L') y--;if(s[j] == 'R') y++;if(s[j] == 'U') x--;if(s[j] == 'D') x++;if(x < 0 || x >= n || y < 0 || y >= n) break;ok++;}ans[i] = ok;}return ans;}
};

C 5965.相同元素的间隔之和

给出 nnn 个数,对于每个 k∈[0,n)k\in[0,n)k∈[0,n),求出 ∑i=0n−1∣i−k∣×[ai==ak]\sum\limits_{i=0}^{n-1}|i-k|\times[a_i==a_k]i=0∑n−1​∣i−k∣×[ai​==ak​]。

1≤n≤105,1≤ai≤1051\le n\le 10^5, 1\le a_i\le 10^51≤n≤105,1≤ai​≤105。

做法

很套路的题,把 aia_iai​ 相同的放到一个数组里,然后求一下前缀和,把绝对值拆开计算即可。
复杂度为 O(n)O(n)O(n) 或者 O(nlogn)O(nlogn)O(nlogn)。

代码

typedef long long ll;
class Solution {public:vector<long long> getDistances(vector<int>& arr) {map<int, vector<int>> mp;int n = arr.size();vector<ll> ans(n);for(int i = 0; i < n; i++) mp[arr[i]].push_back(i);for(auto& e: mp){auto& v = e.second;int n = v.size();vector<ll> s(n);for(int i = 0; i < n; i++){if(i > 0) s[i] = s[i - 1];s[i] += v[i];}auto cal = [&](int l, int r){if(l > r) return 0ll;ll a = s[r], b = (l > 0? s[l - 1]: 0);return a - b;};for(int i = 0; i < n; i++){ll t1 = i + 1, t2 = n - i;ll s1 = t1 * v[i] - cal(0, i), s2 = cal(i, n - 1) - t2 * v[i];ans[v[i]] = s1 + s2;}}return ans;}
};

D 5966. 还原原数组

给出 2n2n2n 个数,问能否划分成 nnn 对 (bi,ci)(b_i,c_i)(bi​,ci​),满足 ci>bi,ci−bic_i>b_i,c_i-b_ici​>bi​,ci​−bi​ 都相等,并且 ci≡bi(mod2)c_i\equiv b_i(\mod 2)ci​≡bi​(mod2),返回 bi+ci2\frac{b_i+c_i}{2}2bi​+ci​​。保证有解。

1≤n≤10001\le n\le 10001≤n≤1000。

做法

九折还 hardhardhard…

枚举 ci−bic_i-b_ici​−bi​ 的值,然后从小到大枚举 bib_ibi​,用一个 setsetset 或者 multisetmultisetmultiset 或者 mapmapmap 来快速判断有没有匹配的 cic_ici​。
总的复杂度是 O(nlogn)O(nlogn)O(nlogn)。

代码

class Solution {public:vector<int> recoverArray(vector<int>& nums) {sort(nums.begin(), nums.end());int n = nums.size();for(int i = 1; i < n; i++){vector<int> vis(n);int k = nums[i] - nums[0];if(k == 0 || k % 2) continue;set<pair<int, int>> s;for(int j = 0; j < n; j++) s.insert({nums[j], j});vector<int> a;vis[0] = vis[i] = 1;a.push_back((nums[i] + nums[0]) / 2);s.erase({nums[0], 0}), s.erase({nums[i], i});int ok = 1;for(int j = 1; j < n; j++){if(vis[j]) continue;int v = nums[j] + k;auto it = s.lower_bound({v, 0});if(it == s.end() || it->first != v){ok = 0;break;}a.push_back((nums[j] + v) / 2);vis[j] = vis[it->second] = 1;s.erase({nums[j], j}), s.erase({it->first, it->second});}if(ok){return a;break;}}return {};}
};

从零单排力扣周赛_周赛273相关推荐

  1. 从零单排力扣周赛_周赛275

    本文同步发布于 个人博客 前言 这场打得就很辣鸡了,因为 B 题我看错题了! 不过 wls 登顶了Orz A 2133. 检查是否每一行每一列都包含全部整数 题意 给出 n×nn\times nn×n ...

  2. 20201219:力扣219周周赛题解

    力扣219周周赛题解 题目 思路与算法 代码实现 复杂度分析 题目 比赛中的配对次数 十-二进制数的最少数目 石子游戏 VII 堆叠长方体的最大高度 思路与算法 比赛中的配对次数 两两比赛,淘汰剩一支 ...

  3. 20201007:力扣209周周赛题解记录(上)

    力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...

  4. 20201221:力扣220场周赛题解

    力扣220场周赛 题目 思路与算法 代码实现 写在最后 题目 重新格式化电话号码 删除子数组的最大得分 跳跃游戏 VI 思路与算法 简单的string操作,用cpp或者java均可. 使用一个map来 ...

  5. 20201008:力扣209周周赛题解(下)

    力扣209周周赛题解(下) 题目 思路与算法 代码实现 写在最后 题目 可见点的最大数目 使整数变为 0 的最少操作次数 思路与算法 第一题注意添加角度时atan2的范围是正负π,因此注意差值可能超出 ...

  6. (补)20200911:力扣204周周赛题解下

    力扣204周周赛题解下 题目 思路与算法 代码实现 写在最后 题目 3.1568. 使陆地分离的最少天数 思路与算法 本周周赛第三题勉强可以看看,第四题超出我目前的水平,跳过.第三题是一个典型的dfs ...

  7. 20200910:力扣204周周赛题解上(Java/Python/Cpp)

    力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...

  8. 20200907:力扣203周周赛题解记录

    力扣203周周赛题解 题目一: 1.圆形赛道上经过次数最多的扇区 示例 解题思路与代码实现 本题的思路为优化整个起点与终点,理清关系,起点到终点的过程中,分为起点小于终点,起点大于终点,起点等于终点, ...

  9. 20200819:力扣202周周赛题解记录

    力扣202周周赛题解记录 题目一:[存在连续三个奇数的数组](https://leetcode-cn.com/problems/three-consecutive-odds/) 代码实现 题目二:[使 ...

最新文章

  1. 计划完成提醒系统C语言,通信录管理计划系统C语言知识程序设计.doc
  2. linux input输入子系统分析《三》:S3C2440的触摸屏驱动实例
  3. Mysql之慢查询日志详解
  4. 2019秋季学习计划
  5. sql查询初学者指南_面向初学者SQL Server查询执行计划–类型和选项
  6. spring boot Junit5单元测试
  7. c语言crc编码函数,C语言:CRC校验
  8. VB2010(17)_消息对话框MessageBox
  9. word下载后为php_php生成word并下载代码实例
  10. 干货 | 4步带你完成私有云盘搭建
  11. 脚本自动ping检测网络情况
  12. Oracle dual表详解(zzl)
  13. Bernoulli Number
  14. Kotlin常见知识点和踩坑指南
  15. 电大 专科 计算机应用,2015春中央电大计算机应用基础(专科)平时作业(3)
  16. 如何将瑞克和莫蒂的字幕和音频抓下来练习口语
  17. 微软New Bing初体验:AI时代的搜索引擎(内含体验方法)
  18. iTextSharp 使用详解 读写PDF
  19. Resume In English
  20. 汉语句子的意群和重音_五重音而不是字节-数据存储和检索方法

热门文章

  1. 面试系列Java中级:为什么HashMap引入红黑树?
  2. 在云端的输入法:搜狗云引发下一代输入法革命
  3. 你的私人编程老师,ChatGPT帮你快速掌握Python编程
  4. python实现pca降维_python实现PCA(主成分分析)降维
  5. 茴字的N种写法 (读《把脉VC++》笔记)
  6. layerconfirm 自动关闭问题 没有阻塞问题_AirPodsPro声音问题官方回应、AirPodsPro的空间音频使用感受...
  7. 台式电脑通过手机上网 win7 android
  8. AGM AG1280 CPLD
  9. aj-report 编辑一个完整的大屏显示报表
  10. IE浏览器JS提示缺少对象的解决办法