第 375 场 LeetCode 周赛题解

A 统计已测试设备

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

模拟:记录当前已测试设备数量

class Solution {
public:int countTestedDevices(vector<int> &batteryPercentages) {int res = 0;int s = 0;for (auto x: batteryPercentages) {if (x - s > 0) {res++;s++;}}return res;}
};

B 双模幂运算

在这里插入图片描述

快速幂

class Solution {
public:int fpow(int x, int n, int mod) {// x^n%modint res = 1;for (int e = x; n; e = e * e % mod, n >>= 1)if (n & 1)res = res * e % mod;return res;}vector<int> getGoodIndices(vector<vector<int>> &variables, int target) {vector<int> res;for (int i = 0; i < variables.size(); i++)if (fpow(fpow(variables[i][0], variables[i][1], 10), variables[i][2], variables[i][3]) == target)res.push_back(i);return res;}
};

C 统计最大元素出现至少 K 次的子数组

在这里插入图片描述

滑动窗口:枚举滑窗的左边界 l l l,找到满足条件的最小右边界 r r r ,则左边界为 l l l 的满足条件的子数组数目为 n u m s . s i z e ( ) − r nums.size()-r nums.size()r

class Solution {
public:long long countSubarrays(vector<int> &nums, int k) {int mx = *max_element(nums.begin(), nums.end());int n = nums.size();long long res = 0;int cnt = 0;for (int l = 0, r = -1; l < n;) {while (cnt < k && r + 1 < n)if (nums[++r] == mx)cnt++;if (cnt < k)break;res += n - r;if (nums[l++] == mx)cnt--;}return res;}
};

D 统计好分割方案的数目

在这里插入图片描述

计数:因为相同数字必须在一个子数组中,所以可以预先求出 n u m s nums nums 按要求最多可以划分成的子数组数目 c n t cnt cnt,原数组好分割方案数目等于 c n t cnt cnt 个互不相同的数形成的数组的好分割方案数目,即 2 c n t − 1 2^{cnt-1} 2cnt1

class Solution {
public:int numberOfGoodPartitions(vector<int> &nums) {int n = nums.size();unordered_map<int, int> r;//记录每个数出现的最右小标for (int i = 0; i < n; i++)r[nums[i]] = i;int cnt = 0;//按要求最多可以划分成的子数组数目for (int i = 0, right = r[nums[0]]; i < n;) {if (i != right) {right = max(right, r[nums[i++]]);} else {cnt++;if (i == n - 1)break;right = r[nums[++i]];}}int mod = 1e9 + 7;int res = 1;for (int i = 0; i < cnt - 1; i++)res = res * 2 % mod;return (res + mod) % mod;}
};

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

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

相关文章

Promise与async/await的简单介绍

在 JavaScript 中&#xff0c;处理异步操作一直是开发者们面临的挑战之一。传统的回调函数方式往往导致代码难以维护、可读性差、易产生回调地狱等问题。为了解决这些问题&#xff0c;出现了 Promise 和 Async/Await 这两种处理异步操作的方式。 一、异步产生问题示例 当我们…

Gilisoft Video Editor——迈出剪辑的第一步

今天博主分享的是又一款剪辑软件——视频剪辑手&#xff08;GiliSoft Video Editor&#xff09;&#xff0c;对剪辑视频感兴趣的小伙伴千万不要错过。这是一款专门用于视频剪辑的软件&#xff0c;功能比较简单&#xff0c;相比于专业的pr是比不了的&#xff0c;但是制作一些简单…

Vue 创建虚拟DOM元素的几种方式和实际应用。

目录 创建虚拟DOM元素的方式 创建一个简单的元素&#xff1a; 创建一个带有属性的元素&#xff1a; 创建一个带有子元素的元素&#xff1a; 创建一个带有事件监听器的元素&#xff1a; 创建一个Vue组件 创建一个带Props的组件 创建一个带Slot的组件 实际应用 创建虚…

gma 空间绘图实战(1):绘制多个子图,连接并展示局部放大区域

安装 gma&#xff1a;pip install gma 本文基于&#xff1a;gma 2.0.3&#xff0c;Python 3.10 本文用到的矢量数据为&#xff1a;CTAmap 1.12。来源于 https://www.shengshixian.com/ 。&#xff08;感谢锐多宝&#xff09; 绘图目标 参考代码 import matplotlib.pyplot as p…

jQuery 选择器全部详细笔记

目录 JQuery全部详细笔记-上 jQuery 选择器 jQuery 选择器介绍 jQuery 选择器的优点 代码演示 基本选择器 ● 基本选择器应用实例 程序运行图 层次选择器 ● 层次选择器应用实例 代码演示 表单选择器 ● 表单选择器基本介绍 代码演示 综合代码示例 网页中所有的…

【FMCW毫米波雷达设计 】 — FMCW波形

原书&#xff1a;FMCW Radar Design 1 引言 本章研究驱动FMCW雷达的主要波形:线性调频(LFM)波形。我们研究信号的行为及其性质。随后&#xff0c;本章讨论了匹配滤波理论&#xff0c;并研究了压缩这种波形的技术&#xff0c;特别是所谓的拉伸处理&#xff0c;它赋予FMCW雷达极…

【网络奇缘系列】计算机网络|数据通信方式|数据传输方式

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 这篇文章是关于计算机网络中数据通信的基础知识点&#xff0c; 从模型&#xff0c;术语再到数据通信方式&#…

小目标检测模型设计的一点思考

1. 小目标的特性 目标之间的交叠概率比较低&#xff0c;即使有交叠&#xff0c;其IoU多数情况下也是比较小的 AI-TOD Tiny Person Dateset 小目标自身的纹理显著度有强弱区别&#xff0c;但是总体来说纹理特征都较弱&#xff0c;很多时候需要借助一定的图像上下文来帮助确认 …

IDEA远程调试与JDWP调试端口RCE漏洞

文章目录 前言Docker远程调试Java调试原理远程调试实践 JDWP端口RCE调试端口探测调试端口利用 总结 前言 在对一些 Java CVE 漏洞的调试分析过程中&#xff0c;少不了需要搭建漏洞环境的场景&#xff0c;但是本地 IDEA 搭建的话既麻烦&#xff08;通过 pom.xml 导入各种漏洞组…

【BUG】微信小程序扫码获取不到scene参数的bug修复

问题描述&#xff1a; 扫码后获取不到scene&#xff0c;必须点击“重新进入小程序”才可以 错误原因&#xff1a; 微信小程序的二维码扫描分为两种情况&#xff1a; 冷启动&#xff1a;当用户首次扫描二维码或在后台无该小程序运行实例时打开小程序&#xff0c;此时可以通过…

vuex如何存储数据、获取数据、以及数据的持久化

前提必须已经在vue中安装了vuex插件不然无法使用&#xff0c;不知道怎么创建vue和安装vuex的可以看这个视频&#xff0c;node.js版本最好16以上不然可能会安装失败&#xff1a;30分钟学会Vue之VueRouter&Vuex 趁着暑假掌握一门技能 大学生前端实习毕业设计必备技能_哔哩哔哩…

Linux环境下socket本地通信

最近项目有用到了socket本地通信&#xff0c;故复习一下。之前都是基于本地虚拟机的ip地址通信的&#xff0c;现在项目&#xff0c;Linux单板上面有2个进程需要通信&#xff0c;故用到了本地socket通信&#xff0c;主要其实就是用了sockfd,文件描述符&#xff0c;也叫句柄。 服…