第 108 场LeetCode双周赛

news2024/11/24 5:53:48

A 最长交替子序列

在这里插入图片描述

暴力枚举

class Solution {
public:
    int alternatingSubarray(vector<int> &nums) {
        int n = nums.size();
        for (int len = n; len > 1; len--) {
            for (int i = 0; i + len - 1 < n; i++) {
                int j = i + 1;
                for (; j < i + len; j++)
                    if (nums[j] - nums[j - 1] != ((j - i) % 2 ? 1 : -1))
                        break;
                if (j == i + len)
                    return len;
            }
        }
        return -1;
    }
};

B 重新放置石块

在这里插入图片描述

有序集合模拟

class Solution {
public:
    vector<int> relocateMarbles(vector<int> &nums, vector<int> &moveFrom, vector<int> &moveTo) {
        set<int> s{nums.begin(), nums.end()};
        for (int i = 0; i < moveFrom.size(); i++) {
            s.erase(moveFrom[i]);
            s.insert(moveTo[i]);
        }
        return vector<int>{s.begin(), s.end()};
    }
};


C 将字符串分割为最少的美丽子字符串

在这里插入图片描述

动态规划: 设 s s s长为 n n n, 定义 p l p_{l} pl为将 s [ l , n ) s[l,n) s[l,n)分割为最少的美丽子字符串的子串数, 若 s [ l , n ) s[l,n) s[l,n)对应的数为5的幂则 p l p_{l} pl=1, 否则有转移方程: p l = m i n { p r + 1    ∣    l < r < n    且    s [ l , r ) 对应的数是 5 的幂 } p_l= min\{p_{r}+1 \;|\; l<r<n \; 且 \; s[l,r)对应的数是5的幂 \} pl=min{pr+1l<r<ns[l,r)对应的数是5的幂}

class Solution {
public:
    int getval(string s) {//2进制串转10进制数
        int cur = 0;
        for (auto c: s)
            cur = cur * 2 + c - '0';
        return cur;
    }

    bool ispow5(int val) {//判断是否为5的非负整数幂
        for (; val % 5 == 0; val /= 5);
        return val == 1;
    }

    int minimumBeautifulSubstrings(string s) {
        int n = s.size();
        vector<int> p(n, INT32_MAX);//初始化状态为无效
        if (s[n - 1] == '1')
            p[n - 1] = 1;
        for (int l = n - 2; l >= 0; l--)
            if (s[l] != '0') {//不能有前导零
                if (ispow5(getval(s.substr(l))))
                    p[l] = 1;
                for (int r = l + 1; r < n; r++)
                    if (p[r] != INT32_MAX) {//p[r]状态有效
                        if (ispow5(getval(s.substr(l, r - l))))
                            p[l] = min(p[l], p[r] + 1);
                    }
            }
        return p[0] == INT32_MAX ? -1 : p[0];
    }
};

D 黑格子的数目

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

哈希: 枚举coordinates中的黑色格子, 每个黑色格子最多能使周围的4个块的块内黑格子数加1, 用哈希记录出现过的块的块内黑格子数.

class Solution {
public:
    vector<long long> countBlackBlocks(int m, int n, vector<vector<int>> &coordinates) {
        map<pair<int, int>, int> cnt;//块左上角的坐标 -> 块内黑格子数
        int dx[4] = {0, -1, -1, 0};
        int dy[4] = {-1, -1, 0, 0};
        for (auto &p: coordinates) {
            for (int k = 0; k < 4; k++) {
                int nx = p[0] + dx[k];
                int ny = p[1] + dy[k];
                if (nx < 0 || nx >= m - 1 || ny < 0 || ny >= n - 1)
                    continue;
                cnt[{nx, ny}]++;//块左上角的坐标为(nx,ny)的块的块内黑格子数更新
            }
        }
        vector<long long> res(5);
        for (auto &[_, v]: cnt)
            res[v]++;
        res[0] = 1LL * (m - 1) * (n - 1) - accumulate(res.begin() + 1, res.end(), 0);
        return res;
    }
};

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

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

相关文章

mysql一条更新语句是如何被执行的——带你了解mysql更新语句执行内部顺序

文章目录 写在前面一、缓冲池 Buffer Poll二、Redo log1、磁盘寻址的过程2、redo log特点 三、Undo log四、更新过程五、InnoDB总体架构1、内存结构&#xff08;1&#xff09;Buffer Pool&#xff08;2&#xff09;预读机制&#xff08;3&#xff09;LRU算法&#xff08;4&…

安装Ceph集群

安装Ceph集群 环境准备 CentOS 7.6 主机名IPRoleadmin192.168.182.128adminnode1192.168.182.129mon/mgr/osdnode2192.168.182.130osdnode3192.168.182.131osdclient192.168.182.132 所有节点修改主机名相互解析三台node节点添加大小5G以上硬盘关闭所有节点防火墙与SeLinux所…

机器学习 day25(softmax在神经网络模型上的应用,提高数据精度的方法)

输出层采用softmax 在识别手写数字的模型中&#xff0c;预测y只有两个结果&#xff0c;所以输出层采用sigmoid激活函数且只有一个神经元。若预测y有10个结果&#xff08;0-9&#xff09;&#xff0c;该模型的前向传播计算方式与识别数字的模型完全相同&#xff0c;即隐藏层的…

【力扣算法07】之 2.两数相加 python

文章目录 问题描述示例1示例2示例 3提示 思路分析代码分析完整代码详细分析 完结 问题描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同…

RabbitMQ常用工作模式+整合springboot

目录 1.MQ的相关概念 1.1 什么是MQ消息中间件 1.2 为什么使用MQ (1) 应用解耦 (2) 异步提速 (3)削峰填谷 1.3 使用MQ的劣势 1.4 常见的MQ组件​​​​​​​ 2. RabbitMQ的概述 2.1 RabbitMQ的概念 2.2 RabbitMQ的原理 2.3 安装RabbitMQ 3. RabbitMQ 的工作模式…

Swift与OC的混编

一些场面话 在一位前辈的博客里看到了关于iOS开发的各种语言的混编&#xff0c;浅浅学习一下怎么使用。不得不说语言混编的开发者是真的&#x1f42e;&#x1f37a; Swift中用OC混编 新建一个Swift文件 创建一个OC的类 选择language为OC 继续往下走&#xff0c;会跳出这个界…

学无止境·MySQL⑤(存储函数、存储过程)

存储函数和存储过程试题 试题一1、创建一个可以统计表格内记录条数的存储函数 &#xff0c;函数名为count_sch()2、创建一个存储过程avg_sai&#xff0c;有3个参数&#xff0c;分别是deptno&#xff0c;job&#xff0c;接收平均工资&#xff0c;功能查询emp表dept为30&#xff…

C/C++用socket实现简单的TCP文件传输

C/C:用socket实现简单的TCP文件传输 网络中进程之间如何进行通信socket是什么socket的基本操作socket()函数bind()函数listen()、connect()函数accept()函数recv()/send()函数close()函数 TCP的“三次握手”“三次握手”的作用 TCP的“四次挥手”四次挥手的一些注意事项 代码实…

【附3.7安装包】python安装包下载及安装(超详细)

python3.7链接&#xff1a;https://pan.baidu.com/s/1Ett3XBMjWhkVOxkOU8NRqw?pwdqz3l 提取码&#xff1a;qz3l 今日资源&#xff1a;Python 适用系统&#xff1a;WINDOWS ​ Python 3.7.0 软件介绍&#xff1a; Python是一款通用型的计算机程序设计语言&#xff0c;Pytho…

【Leetcode】19. 删除链表的倒数第N个节点

给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 进阶&#xff1a;你能尝试使用一趟扫描实现吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&…

有没有线上兼职的副业,在家可以做什么赚钱

线上兼职副业啊&#xff0c;确实是一个不错的副业选择&#xff01;不过&#xff0c;我得提醒你&#xff0c;如果想要那种点一下鼠标就会下金币的神仙项目&#xff0c;这样的期待的话&#xff0c;那我只能告诉你&#xff0c;你可能走错地方了&#xff0c;在这帮不了你。 在线上赚…

LeetCode[470]用Rand7()实现Rand10()

难度&#xff1a;Medium 题目&#xff1a; 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数&#xff0c;试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。 你只能调用 rand7() 且不能调用其他方法。请不要使用系统的 Math.random() 方法。 每个测试用例将有一个内部…

Python案例分析|基于模块的库存管理系统

本案例是通过一个多模块的库存管理系统案例&#xff0c;帮助大家深入了解基于模块的Python应用程序的开发流程。 01、库存管理系统API设计 本文实现一个简单的基于模块的库存管理系统。系统采用JSON文件来保存数据。产品信息设计为字典&#xff0c;键为sku_id&#xff08;产品…

软件工程——第13章软件项目管理知识点整理(完结)

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.管理的定义&#xff1f; 2.软件项目管理地位&#xff1f;&#xff08;重要性&#xff09; 3.软件项目管理过程从一组项目计划活动开始&#xff0c…

怎么制作查询成绩的网页?这个不用代码的方法你用过没?

作为一名老师&#xff0c;与家长沟通交流是日常工作中重要的一部分。特别是每次考完试后&#xff0c;家长都急切地想了解孩子的成绩&#xff0c;以便能及时了解孩子的学习情况并给予适当的支持和指导。然而&#xff0c;为了保护学生的隐私&#xff0c;大部分学校不公开张榜学生…

字符设备驱动led灯实验

应用程序代码 #include<stdio.h> #include<string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h>int main (int argc, const char *argv[]) {char buf[128] &quo…

马上就要到2023年秋招的黄金时期了,计算机专业面试究竟需要注意些什么?

说说自己&#xff0c;不算很突出。本人 17 年就读于一所普通的本科学校&#xff0c;20 年 6 月在三年经验的时候顺利通过校招实习面试进入大厂&#xff0c;现就职于某大厂安全实验室。 所以我还是比较有话语权的吧。 话不多说直接进入主题。 1.理论知识准备&#xff1a;复习计算…

驱动 day9 作业

要求&#xff1a; 现象 按下key1 led1灯的状态取反&#xff0c;number的值取反&#xff0c;然后应用程序打印从内核读到的number的值 应用程序test.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #incl…

Bash 有效电话号码

193 有效电话号码 给定一个包含电话号码列表&#xff08;一行一个电话号码&#xff09;的文本文件 file.txt&#xff0c;写一个单行 bash 脚本输出所有有效的电话号码。 你可以假设一个有效的电话号码必须满足以下两种格式&#xff1a; (xxx) xxx-xxxx 或 xxx-xxx-xxxx。&…

三维重建以及神经渲染中的学习(三)

三维重建以及神经渲染中的学习 公众号AI知识物语 本文内容为参加过去一次暑期课程学习时的笔记&#xff0c;浅浅记录下。 三维图形可控生成&#xff1a; 1&#xff1a;学习一个图形生成模型 2&#xff1a;具有可控三维变量&#xff1a;1物体形状&#xff1b;2物体位置&…