leetcode周赛375 - 12 - 10

news/2025/4/2 7:20:31/

比赛地址 :

 竞赛 - 力扣 (LeetCode)

t1

: 直接暴力即可

class Solution {
public:int countTestedDevices(vector<int>& b) {int n = b.size();int ans = 0;for(int i=0;i<n;i++){if(b[i]>0){ans ++;for(int j=i+1;j<n;j++){b[j] = max(b[j]-1,0);}}}return ans;}
};

t2 : 

需要用到快速幂

typedef long long LL;
class Solution {
public:LL qmi(int m,int k,int p){int res = 1 % p,t =m;while(k){if(k&1) res = res * t % p ;t = t * t % p;k >>= 1;}return res;}vector<int> getGoodIndices(vector<vector<int>>& vs, int target) {int n = vs.size();vector<int> ans;// ((aibi % 10)ci) % mi == targetfor(int i=0;i<n;i++){int a = vs[i][0],b=vs[i][1],c=vs[i][2],m=vs[i][3];if( qmi(qmi(a,b,10),c,m) == target){ans.push_back(i);}}return ans;}
};

t3

滑动窗口 : 维护一个窗口( l , r ) 使其中的最大值出现的次数为k次,小于k的时候,r向后遍历,直到出现次数==k,这时候,删除窗口左边的数字,使最大值出现次数<k,然后这样循环遍历即可;

class Solution {
public:long long countSubarrays(vector<int>& nums, int k) {long long ans = 0;int n = nums.size();int l = 0 , r = 0 ;int ma = *max_element(nums.begin(),nums.end());int t = 0 ;// 统计窗口中ma出现的次数while(r < n){t += nums[r] == ma;while(t==k){t -= nums[l++]==ma;}ans += l ; // 以r为右端点的,以l为左端点的,那么l之前的都可以(能够很好的去重)r ++ ; } return ans ;}
};

t4:

首先重复元素肯定只能够出现在一个数组里面,那么就可以使用类似于lc56区间合并的思想了,具体实现请看代码 : 

const int mod = 1e9+7;
class Solution {
public:int numberOfGoodPartitions(vector<int>& nums) {// 每个重复元素必须选择 , 然后类似区间合并unordered_map<int,pair<int,int>> mp;int n = nums.size();for(int i=0;i<n;i++) // 找出每个数字的首尾地址if(mp.find(nums[i])==mp.end()) // 之前没有出现过mp[nums[i]] = {i, i} ;else{ // 之前出现过mp[nums[i]].second = i; }vector<pair<int,int>> a;for(auto &[_,p]:mp) a.push_back(p);sort(a.begin(),a.end(),[](const auto &p,const auto &q){return p.first < q.first ; // 按区间的左端点排序});// 下面就是合并区间的思想了,看下能够最多分成 m 个区间// ans = 2 ^ (m - 1)  int ans = 1; // 最少就是整个数组的一种选法int idx = a[0].second;for(int i=1;i<a.size();i++){int l = a[i].first , r = a[i].second;if(l>idx){// 新开一个区间ans = ans * 2 % mod;} idx = max(idx , r);}return ans;}
};


http://www.ppmy.cn/news/1268290.html

相关文章

智能优化算法应用:基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蚁狮算法4.实验参数设定5.算法结果6.参考文献7.MA…

tgf - 一个开箱即用的golang游戏服务器框架

tgf框架 tgf框架是使用golang开发的一套游戏分布式框架.属于开箱即用的项目框架,目前适用于中小型团队,独立开发者,快速开发使用.框架提供了一整套开发工具,并且定义了模块开发规范.开发者只需要关注业务逻辑即可,无需关心用户并发和节点状态等复杂情况. 使用介绍 创建业务逻辑…

计算机网络简答题

面向连接和非连接的服务特点 面向连接的服务&#xff1a;通信双方在进行通信之前&#xff0c;要事先建立一个完整的可以彼此沟通的通道&#xff0c;在通信过程中整个连接的情况可以被实时的监控和管理 面向非链接的服务&#xff1a;不需要预先建立一个联络两个通信节点的连接&a…

[强网拟态决赛 2023] Crypto

文章目录 Bad_rsaClasslcal Bad_rsa 题目描述&#xff1a; from Crypto.Util.number import *f open(flag.txt,rb) m bytes_to_long(f.readline().strip())p getPrime(512) q getPrime(512) e getPrime(8) n p*q phi (p-1)*(q-1) d inverse(e,phi) leak d & ((1…

部署Kubernetes(k8s)集群,可视化部署kuboard

所需机器 主机名地址角色配置k8s-master192.168.231.134主节点2核4G,centos7k8s-node1192.168.231.135工作节点2核4G,centos7k8s-node2192.168.231.136工作节点2核4G,centos7 主节点CPU核数必须是 ≥2核且内存要求必须≥2G&#xff0c;否则k8s无法启动 1. 集群环境部署【三台…

深入学习之anaconda、pytorch、cuda安装

文章目录 1. 安装CUDA与CUDNN2. Anaconda安装PyTorch3. notebook添加自己创建的环境4. Anaconda安装相关的库5. GPU测试 1. 安装CUDA与CUDNN csdn大佬安装步骤 【CUDA】cuda安装 &#xff08;windows版&#xff09; 查看此电脑的CUDA版本配置 自己电脑上GPU使用的详细参数 n…

Leetcode221 最大正方形

最大正方形 题解1 DP题解2 暴力(参考) 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内&#xff0c;找到 只包含 ‘1’ 的最大正方形&#xff0c;并返回其面积。 提示&#xff1a; m matrix.length, n matrix[i].length1 < m, n < 300matrix[i][j] 为 ‘0’ 或 ‘1’ 题解…

springboot基础(80):redis geospatial的应用

文章目录 前言redis geospatial如何从地图上获取经纬度springboot 的相关方法调用准备redis服务器引用的依赖预设位置的keyGEOADD 添加位置GEORADIUS 获取指定经纬度附件的停车场&#xff08;deprecated&#xff09;GEORADIUS 获取指定成员附件的停车场&#xff08;deprecated&…