第 113 场 LeetCode 双周赛题解

A 使数组成为递增数组的最少右移次数

在这里插入图片描述

数据范围小直接模拟…

class Solution {
public:int minimumRightShifts(vector<int> &nums) {for (int op = 0; op < nums.size(); op++) {if (is_sorted(nums.begin(), nums.end()))//nums是否已经有序return op;rotate(nums.begin(), prev(nums.end()), nums.end());//右移一次}return -1;}
};

B 删除数对后的最小数组长度

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

分类讨论:设数组中出现次数最多的数的出现次数为 m x mx mx

  1. 当数组长度为偶数时:若 m x ≤ n 2 mx \le \frac n 2 mx2n 则删除数对后的最小数组长度为 0 0 0 ,否则删除数对后的最小数组长度为 m x − ( n − m x ) mx - (n - mx) mx(nmx)
  2. 当数组长度为奇数时:若 m x ≤ ⌊ n 2 ⌋ mx \le \left \lfloor \frac n 2 \right \rfloor mx2n 则删除数对后的最小数组长度为 1 1 1 ,否则删除数对后的最小数组长度为 m x − ( n − m x ) mx - (n - mx) mx(nmx)
class Solution {
public:int minLengthAfterRemovals(vector<int> &nums) {unordered_map<int, int> cnt;//统计出现次数for (auto x: nums)cnt[x]++;int mx = 0;for (auto &[_, cnt_i]: cnt)mx = max(mx, cnt_i);int n = nums.size();if (n % 2 == 0) return mx <= n / 2 ? 0 : mx - (n - mx);        return mx <= n / 2 ? 1 : mx - (n - mx);}
};

C 统计距离为 k 的点对

计数+枚举:枚举数组中的坐标 ( p [ 0 ] , p [ 1 ] ) (p[0],p[1]) (p[0],p[1]) ,枚举可能的与当前坐标距离为 k k k 的坐标:枚举 i ∈ [ 0 , k ] i \in [0,k] i[0,k] ( p [ 0 ] ∧ i , p [ 1 ] ∧ ( k − i ) ) (p[0]\wedge i, p[1]\wedge (k-i)) (p[0]i,p[1](ki)) 即为与当前坐标距离为 k k k 的坐标,若之前出现过这个坐标则更新答案,在枚举坐标 ( x , y ) (x,y) (x,y) 的过程中记录坐标的出现次数。

class Solution {
public:int countPairs(vector<vector<int>> &coordinates, int k) {map<pair<int, int>, int> cnt;//记录坐标的出现次数int res = 0;for (auto &p: coordinates) {for (int i = 0; i <= k; i++) {int x = p[0] ^ i;int y = p[1] ^ (k - i);auto tmp = make_pair(x, y);auto it = cnt.find(tmp);if (it != cnt.end())//之前出现过坐标(x,y)res += it->second;}cnt[{p[0], p[1]}]++;}return res;}
};

D 可以到达每一个节点的最少边反转次数

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

动态规划:首先建无向图,同时记录原始边的方向。不妨设 0 0 0 为树根,设 p [ c u r ] p[cur] p[cur] 为:使 c u r cur cur 能够到达以 c u r cur cur 为根的子树中的所有节点的最少边反转次数。通过 d f s dfs dfs 可以求出 p p p 数组。然后从 0 0 0 开始遍历树中节点 c u r cur cur,遍历过程中维护使 c u r cur cur 能够到达除以 c u r cur cur 为根的子树外的所有节点的最少边反转次数 u p _ c o s t up\_cost up_cost,则使 c u r cur cur 能够到达所有节点的最少边反转次数有 r e s [ c u r ] = p [ c u r ] + u p _ c o s t res[cur]=p[cur]+up\_cost res[cur]=p[cur]+up_cost

class Solution {
public:vector<int> minEdgeReversals(int n, vector<vector<int>> &edges) {vector<pair<int, int>> e[n];for (auto &ei: edges) {e[ei[0]].emplace_back(ei[1], 0);//0代表正向边e[ei[1]].emplace_back(ei[0], 1);//1代表反向边}int p[n];function<int(int, int)> dfs = [&](int cur, int par) {p[cur] = 0;for (auto &[j, w]: e[cur])if (j != par) {if (w == 1)//(cur,j)这条边需要反转p[cur]++;p[cur] += dfs(j, cur);}return p[cur];};dfs(0, -1);//求p数组vector<int> res(n);function<void(int, int, int)> get = [&](int cur, int par, int up_cost) {res[cur] = p[cur] + up_cost;for (auto &[j, w]: e[cur])if (j != par) {if (w == 0)get(j, cur, res[cur] - p[j] + 1);elseget(j, cur, res[cur] - p[j] - 1);}};get(0, -1, 0);//求答案数组return res;}
};

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

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

相关文章

Hive 的权限管理

目录 ​编辑 一、Hive权限简介 1.1 hive中的用户与组 1.1.1 用户 1.1.2 组 1.1.3 角色 1.2 使用场景 1.2.1 hive cli 1.2.2 hiveserver2 1.2.3 hcatalog api 1.3 权限模型 1.3.1 Storage Based Authorization in the Metastore Server 1.3.2 SQL Standards Based …

element树形组件使用之数据授权

<template><div><el-card class"tree-card"><p class"title">数据授权</p><div class"box"><div class"tree"><div class"member">选择授权人员</div><div class…

【python数据分析基础】—pandas中loc()与iloc()的介绍与区别

文章目录 前言一、loc[]函数二、iloc[]函数三、详细用法loc方法iloc方法 总结共同点不同点 前言 我们经常在寻找数据的某行或者某列的时常用到Pandas中的两种方法iloc和loc&#xff0c;两种方法都接收两个参数&#xff0c;第一个参数是行的范围&#xff0c;第二个参数是列的范…

前端编写一个express实现项目部署上线流程

1.先把写好的.vue文件打包成浏览器认识的html、css、js文件 使用npm run bulid命令 2.写一个express服务器 3.创建一个static文件夹&#xff0c;用来存放打包好的html、css、js文件

阿里测开面试大全(一)附答案完整版

万字长文&#xff0c;建议收藏 1 什么是POM&#xff0c;为什么要使用它&#xff1f; POM是Page Object Model的简称&#xff0c;它是一种设计思想&#xff0c;而不是框架。大概的意思是&#xff0c;把一个一个页面&#xff0c;当做一个对象&#xff0c;页面的元素和元素之间操…

day28IO流(字节流字符流)

1. IO概述 1.1 什么是IO 生活中&#xff0c;你肯定经历过这样的场景。当你编辑一个文本文件&#xff0c;忘记了ctrls &#xff0c;可能文件就白白编辑了。当你电脑上插入一个U盘&#xff0c;可以把一个视频&#xff0c;拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢&a…

MSTP+VRRP vlan接口作为网关(2)

SW2 g0/0/2 g0/0/5 g0/0/3 g0/0/4 shutdow 链路失效, vlan 3 的 根桥、master 依然是sw2 PC3的数据包会什么还会到达外部环回口&#xff1f; SW2: dis stp instance 2 brief dis vrrp brief vlan3的主机PC3访问3.3.3.3.数据包发给网关(master)Sw2 pc3 : tracert …

C#中的方法

引言 在C#编程语言中&#xff0c;方法是一种封装了一系列可执行代码的重要构建块。通过方法&#xff0c;我们可以将代码逻辑进行模块化和复用&#xff0c;提高代码的可读性和可维护性。本文将深入探讨C#中的方法的定义、参数传递、返回值、重载、递归等方面的知识&#xff0c;…

Python 自动化运维 100个常见问题.pdf

Python自动化运维能够自动执行重复性任务&#xff0c;包括文件操作、数据处理、系统管理等&#xff0c;从而释放出更多的时间用于更有价值的工作。这有助于降低人工错误的风险&#xff0c;提高团队的工作效率。 以下是我们为大家梳理的Python 自动化运维 的学习路线&#xff0c…

Python爬虫基础(三):使用Selenium动态加载网页

文章目录 系列文章索引一、Selenium简介1、什么是selenium&#xff1f;2、为什么使用selenium3、安装selenium&#xff08;1&#xff09;谷歌浏览器驱动下载安装&#xff08;2&#xff09;安装selenium 二、Selenium使用1、简单使用2、元素定位3、获取元素信息4、交互 三、Phan…

数据包络分析(DEA)——CCR模型

写在前面&#xff1a; 博主本人大学期间参加数学建模竞赛十多余次&#xff0c;获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路&#xff0c;故将数学建模常用数学模型算法汇聚于此专栏&#xff0c;希望能够对要参加数学建模比赛的同学们有所帮助。 目录 1. …

四、C#—变量,表达式,运算符(2)

&#x1f33b;&#x1f33b; 目录 一、表达式1.1 什么是表达式1.2 表达式的基本组成 二、运算符2.1 算术运算符2.1.1 使用 / 运算符时的注意事项2.1.2 使用%运算符时的注意事项 2.2 赋值运算符2.2.1 简单赋值运算符2.2.2 复合赋值运算符 2.3 关系运算符2.4 逻辑运算符2.4.1 逻辑…

PIC16F18323电源控制软件

最近使用PIC16F18323设计一个电源的控制软件&#xff0c;主要功能有&#xff1a;检测输入电压&#xff0c;NTC贴片电阻温度监测&#xff0c;电路输出开环检测及输出过压保护锁死等。 PIC16F18323系列单片机有256字节内存&#xff0c;1K字节ROM空间&#xff0c;使用的是高速内部…

微服务生态系统:使用Spring Cloud构建分布式系统

文章目录 什么是微服务&#xff1f;为什么选择Spring Cloud&#xff1f;Spring Cloud的关键组件示例&#xff1a;构建一个简单的微服务步骤1&#xff1a;创建Spring Boot项目步骤2&#xff1a;配置Eureka服务发现步骤3&#xff1a;创建REST控制器步骤4&#xff1a;运行项目步骤…

达梦数据库阻塞与死锁查询

一、数据库阻塞 1.查询被阻塞的信息和引起阻塞的信息 SELECT SYSDATE STATTIME, DATEDIFF(SS, S1.LAST_SEND_TIME, SYSDATE) SS , 被阻塞的信息 WT , S1.SESS_ID WT_SESS_ID, S1.SQL_TEXT WT_SQL_TEXT, S1.STATE WT_STATE, S1.TRX_ID WT_TRX_ID, S1.USER_NAME WT_USER_NAME, …

实用的嵌入式编码技巧:第三部分

每个触发器都有两个我们在风险方面违反的关键规格。“建立时间”是时钟到来之前输入数据必须稳定的最小纳秒数。“保持时间”告诉我们在时钟转换后保持数据存在多长时间。 这些规格因逻辑设备而异。有些可能需要数十纳秒的设置和/或保持时间&#xff1b;其他人则需要少一个数量…

纽禄美卡Neuromeka亮相美国FABTECH,展示用于焊接的3D视觉协作机器人

原创 | 文 BFT机器人 纽禄美卡Neuromeka公司在由美国精密成型协会、美国焊接协会、化工涂料协会等5大协会举办的美国金属加工及焊接展览会FABTECH上精彩亮相。这家总部位于韩国首尔的公司成立于2013年&#xff0c;是机器人解决方案领域的领先供应商&#xff0c;致力于提高各种…

Spark 【分区与并行度】

RDD 并行度和分区 SparkConf setMaster("local[*]") 我们在创建 SparkContext 对象时通常会指定 SparkConf 参数&#xff0c;它包含了我们运行时的配置信息。如果我们的 setMaster 中的参数是 "local[*]" 时&#xff0c;通常代表使用的CPU核数为当前环境…

setState是同步还是异步的?

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 以下内容针对React v18以下版本。 前言 setState到底是同步还是异步&#xff1f;很多人可能面试都被问到过&#xff0c;就好比这道代码输出题&#xff1…

零售超市如何应对消费者需求?非常全面!

随着科技的飞速发展和消费者期望的不断演变&#xff0c;零售行业正经历着一场深刻的革命。传统零售模式逐渐被新零售模式所取代&#xff0c;而其中一个备受关注的元素是自动售货机。 自动售货机不仅在商场、车站和办公楼等高流量地点迅速扩张&#xff0c;还在重新定义我们如何购…