Leetcode 第三周周赛总结(第 237 场周赛)

2023-11-25 17:20

本文主要是介绍Leetcode 第三周周赛总结(第 237 场周赛),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 排名及做题情况
    • 第一题 5734. 判断句子是否为全字母句 Easy
      • 原题题目
      • 第一题 比赛AC代码
    • 第二题 5735. 雪糕的最大数量 Med
      • 原题题目
      • 第二题 比赛AC代码
    • 第三题 5736. 单线程 CPU Med
      • 原题题目
      • 比赛时的思考
      • 第三题 赛后更正代码 自解 c++是我大爹
      • 第三题 赛后更正总结
    • 第四题 5737. 所有数对按位与结果的异或和 Hard
      • 确实想不到 cv官方代码


排名及做题情况

在这里插入图片描述
在这里插入图片描述


第一题 5734. 判断句子是否为全字母句 Easy


原题题目

在这里插入图片描述


第一题 比赛AC代码


class Solution {
public:bool checkIfPangram(string sentence) {vector<bool> dp(26,false);for(const auto& chr:sentence){if(!isalpha(chr) || !islower(chr)) return false;dp[chr-'a'] = true;}for(const auto& temp:dp)if(!temp)   return false;return true;}
};

第二题 5735. 雪糕的最大数量 Med


原题题目

在这里插入图片描述


第二题 比赛AC代码


class Solution {
public:int maxIceCream(vector<int>& costs, int coins) {int ret = 0;sort(costs.begin(),costs.end());for(const auto& temp:costs){if(temp > coins)    break;else{++ret;coins-=temp;}}return ret;}
};

第三题 5736. 单线程 CPU Med


原题题目

在这里插入图片描述


比赛时的思考


我刚刚看了看评论 是说用优先队列+排序
这些我在比赛的时候 因为之前我没怎么用过优先队列 我还比赛时去网上查 而且这些我也都想过 一个大概的思路都已经出来了 但是还是到最后感觉想法太多太乱了 没有下得去手 就没有做出来

刚刚略看了下题解 给我气的 其实我思路真的是对的 前面的基本操作我都全部写出来了 但是可能是因为经验太少了 哎 我后面再做做


第三题 赛后更正代码 自解 c++是我大爹

C++真的是我爹 我现在真觉得c++很多特性也太好用了 确实这道题整道题做完让我受益匪浅


class Solution {
public:using PII = pair<int,int>;vector<int> getOrder(vector<vector<int>>& tasks) {int size = tasks.size(),time = 0,pos = 0;vector<int> ret;vector<int> v(size,0);iota(v.begin(),v.end(),0);sort(v.begin(),v.end(),[&](int a,int b){return tasks[a][0] < tasks[b][0];});priority_queue<PII,vector<PII>,greater<PII>> q;while(true){if(q.empty())time = max(tasks[v[pos]][0],time);while(pos<=size-1 && time >= tasks[v[pos]][0])q.emplace(tasks[v[pos]][1],v[pos++]);if(pos<=size-1) time += q.top().first;ret.emplace_back(q.top().second);q.pop();if(ret.size() == size)  break;}return ret;}
};

第三题 赛后更正总结

首先是我对 优先队列的理解又上升了一点 还要对C++的功能强大感觉到了确实太牛🍺了 首先就是优先队列里面自定pair 优先队列也可以自动帮你排序就不说了 还有emplace 以后我都会尽量用 首先就是效率问题
这个是我在网上查到的 emplace在插入阶段的时候 只会调用一次构造函数 和一次析构函数 而例如vector的insert首先会插入的时候 会因为重新构造一个临时变量 然后产生一次构造函数和一次析构函数 再加上vector的插入还需要又重新复制拷贝构造一次


第四题 5737. 所有数对按位与结果的异或和 Hard


确实想不到 cv官方代码

class Solution {
public:int getXORSum(vector<int>& arr1, vector<int>& arr2) {int tot1 = accumulate(arr1.begin(), arr1.end(), 0, bit_xor<int>());int tot2 = accumulate(arr2.begin(), arr2.end(), 0, bit_xor<int>());return tot1 & tot2;}
};

这篇关于Leetcode 第三周周赛总结(第 237 场周赛)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424240

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &