周赛总结--LeetCode单周赛321场 AcWing79场

news2024/11/30 2:47:48

1. LeetCode单周赛321场

1.1 找出中枢整数

1.1.1 原题链接:力扣icon-default.png?t=M85Bhttps://leetcode.cn/problems/find-the-pivot-integer/

1.1.2 解题思路:

        1、先保存 1-n 的和sum;

        2、从 1 开始枚举,判断前 i 项和 cmp 与 sum - cmp + i 是否相等即可。

1.1.3 代码:

class Solution {
public:
    int pivotInteger(int n) {
        int sum = 0;
        for(int i = 1; i <= n; i ++ ) sum += i;
        
        int cmp = 0;
        for(int i = 1; i <= n ;i ++ ) {
            cmp += i;
            if(cmp == (sum - cmp + i)) return i;
        }
        
        return -1;
    }
};

1.2 追加字符以获得子序列

1.2.1 原题链接:力扣icon-default.png?t=M85Bhttps://leetcode.cn/problems/append-characters-to-string-to-make-subsequence/

1.2.2 解题思路:

        用双指针来判断是否存在一个 s 中的子序列等于 t,若不存在则当前枚举到 t 中剩下的字母都是需要追加到字母。

1.2.3 代码:

class Solution {
public:
    int appendCharacters(string s, string t) {
        int n = t.size();
        int m = s.size();
        
        int idx = 0;
        for(int i = 0, j = 0; j < m; j ++) {
            if(t[i] == s[j]) {
                i ++;
                idx = i;
            }

            while(t[i] != s[j] && j < m) j ++;
            if(t[i] == s[j]) {
                i ++;
                idx = i;
            }
        }

        int res = n - idx;
        if(res < 0) return 0;
        else return res;
    }
};

1.3 从链表中移除节点

1.3.1 原题链接:力扣icon-default.png?t=M85Bhttps://leetcode.cn/problems/remove-nodes-from-linked-list/

1.3.2 解题思路:

        具体思路见代码。

1.3.3 代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* removeNodes(ListNode* head) {
        if(head == nullptr) return head;//如果head为空直接return就好了
        
        ListNode* res = removeNodes(head->next);//递归处理返回的链表头一定是最大值
        if(res == nullptr) return head;
        if(res->val > head->val) return res; //删除头节点
        head->next = res;   //不删除头节点 
        
        return head;
    }
};

1.4 统计中位数为K的子数组

1.4.1 原题链接:力扣icon-default.png?t=M85Bhttps://leetcode.cn/problems/count-subarrays-with-median-k/

1.4.2 解题思路:

        1、转换为数学式子;

        2、在奇数长度下的情况:

                (1)统计K左侧的数的个数sum1,K右侧的数的个数sum2,必然有sum1 == sum2;

                (2)由(1)知:左侧小于K的数的个数 + 右侧小于K的数的个数 == 左侧大于K的数的  个数 + 右侧大于K的数的个数;

                (3)由(2)知:左侧小于K的数的个数 - 左侧大于K的数的个数 ==  右侧大于K的数的个数 - 右侧小于K的数的个数;将 “ - ”看作是 -1, “+”看作是 +1,例如:

         3、找左右匹配的数对,如上图;

        4、对于偶数个的情况:左侧小于K的数的个数 - 左侧大于K的数的个数  + 1 ==  右侧大于K的数的个数 - 右侧小于K的数的个数。

1.4.3 代码:

class Solution {
public:
    int countSubarrays(vector<int>& nums, int k) {
        //存k的下标
        int pos = find(nums.begin(), nums.end(), k) - nums.begin(), n = nums.size();
        unordered_map<int, int> cnt;
        cnt[0] = 1;
        for(int i =pos + 1, c = 0; i < n; i ++ ) {
            c += nums[i] > k ? 1 : -1;
            ++ cnt[c];
        }

        int ans = cnt[0] + cnt[1];
        for(int i = pos - 1, c = 0; i >= 0; i --) {
            c += nums[i] < k ? 1 : -1;
            ans += cnt[c] + cnt[c + 1];
        }

        return ans;
    }
};

2.AcWing周赛79场

2.1 数列元素

2.1.1 原题链接:4722. 数列元素 - AcWing题库

2.1.2 解题思路:

        预处理前缀和,再从前往后遍历找到相等情况并输出YES,找不到则输出NO。

2.1.3 代码:

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 510;

int s[N];

int main()
{
    int n;
    cin >> n;
    
    for(int i = 1; i <= N; i ++ ) s[i] = s[i - 1] + i;
    
    bool flag = false;
    for(int i = 1; i <= N; i ++ ) {
        if(s[i] == n) flag = true;
    }
    
    if(flag) puts("YES");
    else puts("NO");
    
    return 0;
}

2.2 队列

2.2.1 原题链接:4723. 队列 - AcWing题库

2.2.2 解题思路:

        1、先判断 n 属于哪个区间;

        2、再判断 n 属于第几个元素。

2.2.3 代码:

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
    int n;
    cin >> n;
    
    int s = 0, k = 5;
    while(s + k < n) {
        s += k;
        k *= 2;
    }
    
    n -= s;
    int len = k / 5;
    int t = (n + len - 1) / len;
    
    cout << (char) (t - 1 + 'a') << endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL第二弹

目录​​​​​​​ 一、数据库基本操作 1、查看数据库信息 2、查看数据库中的表信息 3、显示数据表的结构&#xff08;字段&#xff09; 4、常见的数据类型 4.1 数值类型 4.2 日期和时间类型 4.3 字符串类型 二、SQL语言概述 1、SQL语言 2、SQL分类 2.1 DDL:数据定…

【强化学习论文合集】NeurIPS-2021 强化学习论文

强化学习&#xff08;Reinforcement Learning, RL&#xff09;&#xff0c;又称再励学习、评价学习或增强学习&#xff0c;是机器学习的范式和方法论之一&#xff0c;用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达成回报最大化或实现…

js——高阶函数、闭包、递归以及浅拷贝和深拷贝

目录 一、高阶函数 1、什么是高阶函数 2、把一个函数作为参数 3、return 返回的也是一个函数 二、闭包 1、闭包是什么 2、变量的作用域 3、案例 4、结果展示&#xff1a; 5、总结&#xff1a; 三、递归 1、什么是递归 2、案例一 3、分析 4、问题 5、栈溢出又是什…

【Unity Shader​】 屏幕后处理5.0:讨论双重模糊的Bloom

接上一篇基于高斯模糊的Bloom继续进行接下来的学习。 1 一些必要的思考* 1.1 关于高质量Bloom 前面提到了&#xff0c;Bloom对于游戏必不可少的效果之一&#xff0c;于是我们不仅仅要把Bloom效果实现出来&#xff0c;效果的质量好坏就更加是我们需要关注的点了。高质量泛光&a…

面试宝典之C++多态灵魂拷问

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位大佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 文章目录一、重载&#xff0c;隐藏/重定义&#xff0c;覆盖/重写二、多态的原理三、inline可以是虚函数吗四、静态成员函数可以是虚函数吗五、构造函…

海丝一号-中国-2020

2020年12月22日&#xff0c;由中国电科38所和天仪研究院联合研制的我国首颗商业SAR卫星“海丝一号”搭载长征八号运载火箭在文昌卫星发射中心成功发射。海丝一号历时一年完成研制&#xff0c;整星重量小于185kg&#xff0c;成像最高分辨率1m&#xff0c;可以全天时、全天候对陆…

章节5 文件与目录管理

5-Linux文件和目录管理 &#xff08;Linux操作系统-2022的前面章节都为铺垫&#xff09; 常见命令格式 Command Options Arguments 命令 选项 参数 rm -rf /* -一个字母或字母组合&#xff0c;此选项为短选项&#xff0c;–单词&#xff0c;此选项为长选项 Options选项&…

因果推断 | 双重差分法笔记补充

换了新的环境后&#xff0c;一直在适应&#xff08;其实是一直被推着走&#xff09;&#xff0c;所以停更了笔记好久啦。这一周周末终于有点得空&#xff0c;当然也是因为疫情&#xff0c;哪里都不能去&#xff0c;哈哈&#xff0c;所以来冒个泡~ 整理了最近pre的作业&#xf…

ESP32-CAM初始篇:Arduino环境搭建-->实现局域网推流

ESP32-CAM初始篇&#xff1a;Arduino环境搭建–>实现局域网推流 入手产品&#xff1a;安信可科技&#xff1a;ESP32-CAM摄像头开发板&#xff1a; 相关产品特性请访问安信可ESP32-CAM官网&#xff1a;https://docs.ai-thinker.com/esp32-cam 第一步&#xff1a;下载Ardui…

基于51单片机数字频率计的设计

目录 前 言 1 第一章 总体设计方案 2 1.1 总设计框图 2 1.2 硬件设计分析 2 1.2.1 电源的设计 2 &#xff08;4&#xff09;&#xff1a;LCD1602的指令说明及时序 10 &#xff08;5&#xff09;&#xff1a; LCD1602的RAM地址映射及标准字库表 13 第二章 软件设计与分析 15 2.1…

谷粒商城十一商城系统及整合thymeleaf渲染商城首页

我们的商城系统本应该也是前后端分离的&#xff0c;就像后台管理系统那样&#xff0c;然而出于教学考虑&#xff0c;前后端分离的话就会屏蔽掉很多细节&#xff0c;所以我们进行服务端的页面渲染式开发&#xff08;有点儿类似freemarker&#xff09; 这些页面直接粘贴到微服务…

含论文基于JSP的零食销售商城【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86500759 主要使用技术 ServletJSPcssjsMysqlTomcat 功能介绍 (1)前台功能模块&#xff1a; 注册登陆&#xff1a;顾客可以通过填写注册信息成为会员&#xff0c;登陆后才能进行购物车的管…

汽车 Automotive > SOME/IP应用学习

目录 SOME/IP介绍 SOME/IP主要功能 SOME/IP协议 SOME/IP服务类型 SOME/IP-举例 SOME/IP各模块协议 SOME/IP-基础元件 SOME/IP-SoAD SOME/IP-SD协议 SOME/IP-SD举例 SOME/IP-TP协议 SOME/IP-TP举例 SOME/IP介绍 SOME/IP ( Scalable service-Oriented Middleware ove…

基于Android的JavaEE课设

目录 1 技术栈 2 android前端 2.1 概述 2.1.1 目录结构 2.1.2 代码分层 2.2 技术点 2.2.1 数据绑定 2.2.2 前后端数据交互 2.2.3 九宫格图片 2.2.4 未处理消息提醒 2.2.5 动画效果 2.2.6 实时聊天 2.2.7 文件上传 2.2.8 底部弹窗 2.2.9 其他 3 后端 3.1 概述 …

BUUCTF Misc 假如给我三天光明 数据包中的线索 后门查杀 webshell后门

假如给我三天光明 下载文件&#xff0c;一个压缩包&#xff08;需要密码&#xff09;和图片 百度得知下面一行是盲文&#xff0c;根据盲文对照表 和上述图片对照&#xff0c;得到字符串&#xff1a;kmdonowg 。使用它解压压缩包 使用Audacity打开 转换成摩斯密码&#xff0c;…

C语言程序设计 复习总结[持续更新ing]

目录 一 初识C语言 1 main 主函数 2 注释 3 C 程序执行的过程&#xff1a; 4 C 程序的结构 5 进制的转换 1.内存容量 2.二进制与十进制的转换 1>将二进制数转换成十进制 2>将十进制转换成二进制数 3.二进制与八进制的转换 1>将八进制数转换成二进制: 2>将二进…

Java项目:JSP酒店客房管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 酒店管理系统共分为三个角色&#xff0c;客房经理、前台管理员、客户&#xff0c;各个角色的权限各不相同&#xff1b; 客房经理功能包括&#…

leetcode《图解数据结构》刷题日志【第五周】(2022/11/21-2022/11/28)

leetcode《图解数据结构》刷题日志【第五周】1. 剑指 Offer 60. n 个骰子的点数1.1 题目1.2 解题思路1.3 数据类型功能函数总结1.4 java代码1.5 踩坑小记1.6 进阶做法2. 剑指 Offer 63. 股票的最大利润2.1 题目2.2 解题思路2.3 数据类型功能函数总结2.4 java代码3. 剑指 Offer …

SpringBoot SpringBoot 原理篇 1 自动配置 1.16 自动配置原理【2】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.16 自动配置原理【2】1.16.1 看源码了1.16.2 Import({AutoConfig…

archlinux 安装matlab

最近在学matlab使用的是windows版本的&#xff0c;比起windows我更喜欢在linux中写代码。于是乎就想在Linux中安装一下。 主要过程参考此篇文章&#xff1a; 《【首发】 ubuntu20.04安装matlab2021b/matlab2020b》 https://blog.csdn.net/hanjuefu5827/article/details/1151677…