第 402 场 LeetCode 周赛题解

A 构成整天的下标对数目 I

在这里插入图片描述

计数:遍历 h o u r s hours hours ,记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数

class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);long long res = 0;for (auto x : hours) {res += cnt[(24 - x % 24) % 24];cnt[x % 24]++;}return res;}
};

B 构成整天的下标对数目 II

在这里插入图片描述

计数:遍历 h o u r s hours hours ,记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数

class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);long long res = 0;for (auto x : hours) {res += cnt[(24 - x % 24) % 24];cnt[x % 24]++;}return res;}
};

C 施咒的最大总伤害

在这里插入图片描述

动态规划:设 p [ i ] p[i] p[i] 为最大伤害值不超过 i i i 的最大伤害值之和

class Solution {public:using ll = long long;long long maximumTotalDamage(vector<int>& power) {map<int, ll> s;for (auto x : power)s[x] += x;map<int, ll> p;for (auto it = s.begin(); it != s.end(); it++) {p[it->first] = it == s.begin() ? 0 : p[prev(it)->first];auto lb = s.lower_bound(it->first - 2);if (lb == s.begin())p[it->first] = max(p[it->first], it->second);else {p[it->first] = max(p[it->first], p[prev(lb)->first] + it->second);}}return p.rbegin()->second;}
};

D 数组中的峰值

在这里插入图片描述

树状数组:用树状数组维护前缀区间内的峰值元素数,对于更新 n u m s [ i n d e x ] nums[index] nums[index] 的操作,可能改变是否为峰值的位置有 i n d e x − 1 index-1 index1 i n d e x index index i n d e x + 1 index+1 index+1

class Solution {public:vector<int> countOfPeaks(vector<int>& nums, vector<vector<int>>& queries) {int n = nums.size();BinaryIndexedTree bit(n);auto isval = [](int i, int j, int k) { return j > i && j > k; };for (int i = 1; i < n - 1; i++)if (isval(nums[i - 1], nums[i], nums[i + 1]))bit.add(i + 1, 1);//初始化vector<int> res;for (auto& qi : queries) {if (qi[0] == 1) {if (qi[2] - qi[1] + 1 > 2)res.push_back(bit.query(qi[2]) - bit.query(qi[1] + 1));elseres.push_back(0);} else { // updateint i = qi[1];int val = qi[2];if (i - 1 > 0) {//判断nums[i-1]是否改变峰值性if (!isval(nums[i - 2], nums[i - 1], nums[i]) && isval(nums[i - 2], nums[i - 1], val))bit.add(i - 1 + 1, 1);else if (isval(nums[i - 2], nums[i - 1], nums[i]) && !isval(nums[i - 2], nums[i - 1], val))bit.add(i - 1 + 1, -1);}if (i + 1 < n - 1) {//判断nums[i+1]是否改变峰值性if (!isval(nums[i], nums[i + 1], nums[i + 2]) && isval(val, nums[i + 1], nums[i + 2]))bit.add(i + 1 + 1, 1);else if (isval(nums[i], nums[i + 1], nums[i + 2]) && !isval(val, nums[i + 1], nums[i + 2]))bit.add(i + 1 + 1, -1);}if (i != 0 && i != n - 1) {//判断nums[i]是否改变峰值性if (!isval(nums[i - 1], nums[i], nums[i + 1]) && isval(nums[i - 1], val, nums[i + 1]))bit.add(i + 1, 1);if (isval(nums[i - 1], nums[i], nums[i + 1]) && !isval(nums[i - 1], val, nums[i + 1]))bit.add(i + 1, -1);}nums[i] = val;}}return res;}class BinaryIndexedTree {//树状数组模板public:int N;vector<int> a;BinaryIndexedTree(int n) {N = n;a = vector<int>(N + 1);}inline int lowbit(int x) {return x & -x;}void add(int loc, int val) { // li[loc]+=val;for (; loc <= N; loc += lowbit(loc))a[loc] += val;}int query(int loc) { // sum{li[k] | 1<=k<=loc}int res = 0;for (; loc > 0; loc -= lowbit(loc))res += a[loc];return res;}};
};

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

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

相关文章

2024.06.14【读书笔记】丨生物信息学与功能基因组学(第十四章 细菌和古细菌基因组 第四部分)【AI测试版】

读书笔记&#xff1a;《生物信息学与功能基因组学》第十四章 - 第四部分 摘要 第十四章的第四部分聚焦于原核生物基因组的深入分析&#xff0c;探讨了基因组比较学的应用、生物信息学工具在基因组研究中的重要性&#xff0c;以及未来研究方向的展望。 目录 原核生物基因组的…

苹果的后来者居上策略:靠隐私保护打脸微软

01.苹果与微软相比更注重用户隐私 我一直是Windows的忠实用户&#xff0c;但微软疯狂地将人工智能融入一切&#xff0c;让我开始觉得应该咬咬牙换成Mac。 自小我几乎只用Windows电脑&#xff0c;所以我对MacOS一直不太适应。虽然Windows 11有其缺点&#xff0c;但总的来说&am…

Pytorch构建vgg16模型

VGG-16 1. 导入工具包 import torch.optim as optim import torch import torch.nn as nn import torch.utils.data import torchvision.transforms as transforms import torchvision.datasets as datasets from torch.utils.data import DataLoader import torch.optim.lr_…

阿里CEO个人投资的智驾公司,走了不一样的路

佑驾创新在去年8月和11月完成两轮融资&#xff0c;在今年5月底递表港交所&#xff0c;目前拿到了29家车企88款车型的量产订单。自动驾驶赛道不缺明星&#xff0c;这些因素本不足以凸显它的差异化。但是在招股书中&#xff0c;一条特殊的发展路线&#xff0c;却让佑驾创新显得不…

2024.6.20 刷题总结

2024.6.20 **每日一题** 2748.美丽下标对的数目&#xff0c;这道题可以通过暴力求解&#xff0c;也可以使用哈希表来求解&#xff0c;同时通过本题&#xff0c;我发现了C的gcd函数可以直接调用.暴力方法为两重循环遍历&#xff0c;判断他们的gcd是否为1&#xff1b;哈希表的方法…

DB9母头接口定义485

在通信技术中&#xff0c;DB9接口广泛应用于串行通信&#xff0c;尤其是在RS232和RS485标准中。虽然DB9接口最常见于RS232通信&#xff0c;但通过适当的引脚映射&#xff0c;它也可以用于RS485通信。本文将详细介绍如何定义和使用DB9母头接口进行RS485连接。 DB9母头接口简介 …

②-Ⅱ单细胞学习-组间及样本细胞比例分析(补充)

数据加载 ①单细胞学习-数据读取、降维和分群_subset函数单细胞群-CSDN博客‘ #2024年6月20日 单细胞组间差异分析升级# rm(list = ls()) library(Seurat)#数据加载(在第一步已经处理好的数据) load("scedata1.RData")#这里是经过质控和降维后的单细胞数据 tabl…

蓝牙模块在智能城市构建中的创新应用

随着科技的飞速发展&#xff0c;智能城市的概念已经逐渐从理论走向实践。物联网技术作为智能城市构建的核心驱动力&#xff0c;正在推动着城市基础设施、交通管理、环境监测等领域的深刻变革。蓝牙模块&#xff0c;作为物联网技术的重要组成部分&#xff0c;以其低功耗、低成本…

java文件IO操作

前言&#xff1a; java里面的文件操作分为文件系统操作和文件内容操作。文件系统操作主要是针对File这个类来进行操作&#xff0c;而文件内容操作总的来说有四个&#xff1a;Reader&#xff0c;Writer&#xff0c;InputStream&#xff0c;OutputStream&#xff0c;前面两个是通…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(七)质量相关法律法规及《管理体系审核员准则》2021修订3

5、质量管理体系基础考试大纲 3.3法律法规和其他要求 a)《中华人民共和国民法典》第三编 合同&#xff1b; b)《中华人民共和国消费者权益保护法》 c)《中华人民共和国产品质量法》 d) 中国认证认可协会相关人员注册与管理要求 目 录 前 言 第一章 总则 1.1 引言 1.2 适…

重学java 79.JDK新特性 ⑤ JDK8之后的新特性

别怕失败&#xff0c;大不了重头再来 —— 24.6.20 一、接口的私有方法 Java8版本接口增加了两类成员: 公共的默认方法 公共的静态方法 Java9版本接口又新增了一类成员: 私有的方法 为什么IDK1.9要允许接口定义私有方法呢? 因为我们说接口是规范&#xff0c;规范是…

由于找不到msvcp140.dll无法继续执行代码是什么意思,解决msvcp140.dll文件

由于找不到msvcp140.dll无法继续执行代码这种提示&#xff0c;你知道要怎么去处理么&#xff1f;出现这情况&#xff0c;你的程序就代表出现问题了&#xff0c;你会发现打不开&#xff0c;我们需要修复msvcp140.dll文件才能正常的使用程序。今天我们就来聊聊msvcp140.dll找不到…

加密好的WPSword文档,忘记密码怎么办?

在日常办公和学习中&#xff0c;我们经常使用WPS Word等文档处理软件来创建和编辑重要文件。为了保护这些文件不被未经授权的人访问&#xff0c;我们通常会选择给文档设置密码。然而&#xff0c;有时我们可能会因为时间久远或其他原因而忘记自己设置的密码&#xff0c;这时该如…

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

本文档主要描述如何用 DBeaver、db browser 和 SqlCipher 上打开加密的 SQLite3 数据库(用 SqlCipher v3 加密) 软件版本 DBeaver&#xff1a;v24.1.0 SQLite-driver: sqlite-jdbc-3.46.0.0.jar dbbrowser-for-sqlite-cipher&#xff1a;3.12.2 SqlCipher cli(ubuntun)&am…

ubuntu18.04编译 BALM

紧接着上次编译完HBA&#xff0c;直接来编译BALM&#xff0c;发现基本上没有错误&#xff0c;但是在BARGE_test.cpp和PA_test.cpp中ParamSO3会出现错误: 错误改正主要参照&#xff1a; Ceres Manifolds/LocalParameterization 类_ceres::localparameterization-CSDN博客 错误的…

Java AES加密工具类

以下是一个简单的AES加密示例 import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec;/*** author Sakura* date 2023/8/16 14:54* Description 测试网站 http://tool.chacuo.net/cryptaes*/ public class AESU…

如何避免在React中的回调函数中使用箭头函数可能引起的内存泄漏?

在React中&#xff0c;箭头函数在回调函数中的使用确实可能引发性能问题&#xff0c;尤其是当这些函数在渲染方法或者组件内部被定义时。每次组件重新渲染时&#xff0c;都会创建这些函数的新实例&#xff0c;这可能导致不必要的计算和内存使用&#xff0c;甚至在某些情况下引发…

2024年了,上大学可以不需要用到电脑吗?

前言 在2024年的今天&#xff0c;电脑已经成为了人们工作生活的一大部分。Oh, no&#xff01;好像手机才是。 好像每个人都是这样的&#xff1a;可以没有电脑&#xff0c;但不能没有手机…… 所以2024年的今天&#xff0c;上大学的小伙伴们可以不需要用到电脑吗&#xff1f;…

【OCPP】ocpp1.6协议第4.7章节Meter Values的介绍及翻译

目录 4.7、仪表值MeterValues-概述 MeterValues 请求消息 MeterValues 响应消息 使用场景 1. 定期报告 2. 事务相关报告 示例 MeterValues 请求示例 处理 MeterValues 响应 示例代码 构建和发送 MeterValues 请求 可能的错误处理 总结 4.7、仪表值MeterValues-原…

3D打印随形透气钢引领模具排气新潮流

随着模具制造技术的不断发展&#xff0c;金属3D打印技术正逐渐成为模具制造领域的一大亮点。除了已广泛应用的随形水路技术外&#xff0c;金属3D打印在解决模具困气问题上同样展现出独特优势&#xff0c;成为模具排气、解决困气的重要技术方向。 模具的排气系统一直是模具设计制…