LeetCode第332场周赛
2023.2.12LeetCode第332场周赛
6354. 找出数组的串联值
思路
双指针模拟,两个指针相遇的时候要特判
算法
class Solution {
public:long long findTheArrayConcVal(vector<int>& nums) {long long ans = 0;int i = 0, j = nums.size() - 1;while (i <= j) {if (i != j) {string s = to_string(nums[i]) + to_string(nums[j]);ans += stoll(s);} else {string s = to_string(nums[i]);ans += stoll(s);break;}i ++ , j -- ;}return ans;}
};
6355. 统计公平数对的数目
思路
计算在[lower, upper]之间满足条件的数目可以利用前缀和的思想转化为不超过upper和不超过lower-1的数量相减
遍历所有nums[j],找到前面的满足条件的nums[i]的数量,需要先对数组排序后进行二分
算法
class Solution {
public:typedef long long ll;ll calc(vector<int> &a, ll x) {ll res = 0;int n = a.size();for (int i = 1; i < a.size(); i ++ ) {int l = 0, r = i - 1;while (l < r) {int mid = l + r + 1 >> 1;if (a[i] + a[mid] <= x) l = mid;else r = mid - 1;}if (a[i] + a[l] <= x)res += l + 1;}return res;}long long countFairPairs(vector<int>& a, int lower, int upper) {sort(a.begin(), a.end());return calc(a, upper) - calc(a, lower - 1);}
};
6356. 子字符串异或查询
思路
由于val ^ first == second,根据异或运算性质,val = first ^ second
即找到val的二进制在给定字符串中最先出现的位置
暴力算法是记录s的所有子串,o(n2)会超时
由于二进制长度不会超过32位,故记录时只用对每个起点枚举32位的长度
最后查找结果即可
算法
class Solution {
public:vector<vector<int>> substringXorQueries(string s, vector<vector<int>>& queries) {vector<vector<int>> ans;unordered_map<string, int> mp;int n = s.size();for (int i = 0; i < n; i ++ )for (int j = i; j < n; j ++ ) {string t = s.substr(i, j - i + 1);if (j - i + 1 >= 32) break;if (!mp.count(t))mp[t] = i;}for (auto x : queries) {int t = x[0] ^ x[1];string a;while (t) {if (t & 1) a = '1' + a;else a = '0' + a;t >>= 1;}if (a.size() == 0) a = "0";if (mp.count(a)) ans.push_back({mp[a], mp[a] + (int)a.size() - 1});else ans.push_back({-1, -1});}return ans;}
};
相关文章:
LeetCode第332场周赛
2023.2.12LeetCode第332场周赛 6354. 找出数组的串联值 思路 双指针模拟,两个指针相遇的时候要特判 算法 class Solution { public:long long findTheArrayConcVal(vector<int>& nums) {long long ans 0;int i 0, j nums.size() - 1;while (i <…...
2023-2-12刷题情况
字母板上的路径 题目描述 我们从一块字母板上的位置 (0, 0) 出发,该坐标对应的字符为 board[0][0]。 在本题里,字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”],如下所示。 我们可以按下面的指令规则行动…...
拉普拉斯矩阵
拉普拉斯算子 Δff(xi1,yj)f(xi−1,yj)f(xi,yj1)f(xi,yj−1)−4f(xi,yj)∑(k,l)∈N(i,j)(f(xk,yl)−f(xi,yj))\begin{aligned} \Delta f & f\left(x_{i1}, y_j\right) f\left(x_{i-1},y_j\right) f\left(x_i,y_{j1}\right)f\left(x_i,y_{j-1}\right) - 4f\left(x_i,y_j\r…...
Top-1错误率、Top-5错误率等常见的模型算法评估指标解析
Top-1 错误率:指预测输出的概率最高的类别与人工标注的类别相符的准确率,就是你预测的label取最后概率向量里面最大的那一个作为预测结果,如过你的预测结果中概率最大的那个分类正确,则预测正确,否则预测错误。比如预测…...
Urho3D 容器类型
Urho3D实现了自己的字符串类型和模板容器,而不是使用STL。其基本原理如下: 在某些情况下提高了性能,例如使用PODVector类时。保证字符串和容器的二进制大小,以允许例如嵌入Variant对象内。减少了编译时间。直接命名和实现&#x…...
C语言学习笔记(四): 循环结构程序设计
while语句 定义 While语句是C语言中的循环语句,它按条件循环执行语句,直到条件不满足为止 语法格式如下: while(condition) {//循环体内容; }使用实例 求123…100 include <stdio.h> int main(){int i 1, sum 0;while (i<100){sum i …...
02 OpenCV图像通道处理
1 通道提取与合并 在数字图像处理中,图像通道是指一个图像中的颜色信息被分离为不同的颜色分量。常见的图像通道包括RGB通道、灰度通道、HSV通道等。 RGB通道是指将图像分离为红色、绿色和蓝色三个颜色通道,每个通道表示相应颜色的亮度。这种方式是最常…...
微信小程序图书馆座位预约管理系统
开发工具:IDEA、微信小程序服务器:Tomcat9.0, jdk1.8项目构建:maven数据库:mysql5.7前端技术:vue、uniapp服务端技术:springbootmybatis本系统分微信小程序和管理后台两部分,项目采用…...
有限元分析学习一
系列文章目录 有限元分析学习一 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、有限元方法的简单介绍1.1 有限元的基础概念1.2 有限元软件发展历史1.3 有限元软件二、弹性力学的简单介绍2.1.…...
android avb2.0 总结
1、android vbmeta结构深入解析 2、android libavb深入解读 看完结构与代码,进一步了解了avb 比如vbmeta的结构、5种描述符、hash公钥签名存储位置 多层vbmeta结构、无vbmeta分区的验证逻辑、hash计算对比、公钥验证、签名验签、5种描述符体的处理 但是还有一些问题没有解决 如…...
聊天机器人-意图识别类,开源库推荐
随着人工智能和自然语言处理技术的不断发展,聊天机器人在商业、教育、医疗等领域的应用越来越广泛。因此,开源聊天机器人代码库也逐渐成为了热门话题。 开源聊天机器人代码库可以帮助开发者快速构建功能强大的聊天机器人,而不必从头开始编写…...
Java 标识符以及修饰符
Java 标识符Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于 Java 标识符,有以下几点需要注意:所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_&…...
封装、继承、Super、重写、多态instanceof类型转换的使用以及个人见解
这里写目录标题封装继承supersuper和this的区别重写多态instanceof类型转换封装 之前我们调用共有的属性,是直接可以调用的 但是属性私有后,无法在直接.调用 只能通过getset调用 继承 super 可以直接调用父类中属性和方法,私有的无法做 其…...
day13_面向对象的三大特征之一(封装)
封装概述 为什么需要封装? 现实生活中,每一个个体与个体之间是有边界的,每一个团体与团体之间是有边界的,而同一个个体、团体内部的信息是互通的,只是对外有所隐瞒。例如:我们使用的电脑,内部…...
越界访问数组
越界访问是指访问(操作修改)了不属于自己的空间 我们以如下代码为例:此代码在vs中进行 #include <stdio.h> int main() {int i 0;int arr[] {1,2,3,4,5,6,7,8,9,10};for(i0; i<12; i){arr[i] 0;printf("hello\n");}r…...
软件设计(十)--计算机系统知识
软件设计(九)https://blog.csdn.net/ke1ying/article/details/128990035 一、效验码 奇偶效验:是一种最简单的效验方法。基本思想是:通过在编码中增加一个效验位来使编码中1的个数为奇数(奇效验)或者为偶…...
【不知道是啥】浅保存哈
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…...
2021 WAIC 世界人工智能大会参会总结
前言 2021 年世界人工智能大会(WAIC)于2021年7月7日至10日在上海世博展览馆举办,本届大会继续秉持「智联世界」的理念,以「众智成城」为主题,促进全球人工智能创新思想、技术、应用、人才和资本的集聚和交流ÿ…...
ThingsBoard-实现定时任务调度器批量RPC
1、概述 ThingsBoard-CE版是不支持调度器的,只有PE版才支持,但是系统中很多时候需要使用调度器来实现功能,例如:定时给设备下发rpc查询数据,我们如何来实现呢?下面我将教你使用巧妙的方法来实现。 2、使用什么实现 我们可以使用规则链提供的一个节点来实现,这个节点可…...
MySQL数据库调优————数据库调优维度及测试数据准备
MySQL性能优化金字塔法则 不合理的需求,会造成很多问题。(比如未分页,数据需要多表联查等)做架构设计的时候,应充分考虑业务的实际情况,考虑好数据库的各种选择(比如是否要读写分离,…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
