第 398 场 LeetCode 周赛题解

A 特殊数组 I

在这里插入图片描述

模拟:遍历数组判断是否是一个特殊数组

class Solution {
public:bool isArraySpecial(vector<int>& nums) {int r = 0;while (r + 1 < nums.size() && nums[r + 1] % 2 != nums[r] % 2)r++;return r == nums.size() - 1;}
};

B 特殊数组 II

在这里插入图片描述

查表:遍历 n u m s nums nums ,将 n u m s nums nums 划分为若干个最大的特殊数组,并记录各元素所在的特殊数组,然后遍历 q u r i e s quries quries ,判断 f r o m i from_i fromi t o i to_i toi 是否在同一个特殊数组

class Solution {
public:vector<bool> isArraySpecial(vector<int>& nums,vector<vector<int>>& queries) {int n = nums.size();vector<int> id(n);for (int l = 0, r = 0; l < n; l = ++r) {id[l] = l;//nums[l]所在的特殊数组的左端点为lwhile (r + 1 < n && nums[r + 1] % 2 != nums[r] % 2)id[++r] = l;//nums[++r]所在的特殊数组的左端点为l}vector<bool> res;for (auto& qi : queries)res.push_back(id[qi[0]] == id[qi[1]]);return res;}
};

C 所有数对中数位不同之和

在这里插入图片描述

计数:记录每个数位上各数字的出现次数,然后枚举数组中各元素的各个数位

class Solution {
public:using ll = long long;long long sumDigitDifferences(vector<int>& nums) {int n = nums.size();int m = to_string(nums[0]).size();int cnt[m][10]; // cnt[j][v]:数位j上v数字的出现次数memset(cnt, 0, sizeof(cnt));for (auto v : nums) {auto s = to_string(v);for (int j = 0; j < m; j++)cnt[j][s[j] - '0']++;}ll res = 0;for (auto v : nums) {auto sv = to_string(v);for (int j = 0; j < m; j++)res += (ll)(n - cnt[j][sv[j] - '0']);}return res / 2;//题目计数方法中数对是无序的,所以res/2}
};

D 到达第 K 级台阶的方案数

在这里插入图片描述

记忆化搜索:需要维护三个状态信息:当前所在台阶 c u r cur cur ,上一次操作(如果有)是否是下台阶 l a s t _ b a c k last\_back last_back ,当前 j u m p jump jump 值 。可以将 ( c u r , l a s t _ b a c k , j u m p ) (cur,last\_back,jump) (cur,last_back,jump) 用一个 long long 类型数表示,从而用哈希表来实习记忆化搜索

class Solution {
public:using ll = long long;ll enc(int cur, int last_back, int jump) {//状态编码 (cur,last_back,jump) -> maskreturn ((ll)cur << 6LL) | (last_back << 5) | jump;}tuple<int, int, int> dec(ll mask) {//状态解码 mask -> (cur,last_back,jump)return {mask >> 6, mask >> 5 & 1, mask & 31};}int waysToReachStair(int k) {unordered_map<ll, ll> cnt;function<ll(ll)> get = [&](ll mask) {//记忆化搜索if (cnt.count(mask))return cnt[mask];auto [cur, last_back, jump] = dec(mask);if (cur > k + 1)return 0LL;if (cur == k)cnt[mask] = 1;cnt[mask] += get(enc(cur + (1LL << (ll)jump), 0, jump + 1));if (last_back == 0)//不能连续下台阶cnt[mask] += get(enc(cur - 1, 1, jump));return cnt[mask];};return get(enc(1, 0, 0));}
};

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

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

相关文章

计网(部分在session学习章)

TCP/UDP TCP:面向连接,先三次握手建立连接,可靠传输。 UDP:无连接,不可靠,传递的快。 TCP可靠传输 1.分块编号传输; 2.校验和,校验首部和数据的检验和,检测数据在传输中的变化; 3.丢弃重复数据; 4.流量控制,TCP 利⽤滑动窗⼝实现流量控制。TCP的拥塞控制采⽤…

如何解决VSCode Git插件差异查看器 无法读取文件 Error: 无法解析不存在的文件 的问题

问题描述 问题&#xff1a;在使用VSCode的Git插件中的差异查看器时&#xff0c;有时会出现如下报错信息&#xff1a; 无法读取文件 git:/d:/Desktop//UIInput.js?{"path":"d:\\Desktop\\UIInput.js","ref":"~"} (Error: 无法解析不…

如何用正则表达式匹配中文和英文

在文本处理和自然语言处理的领域&#xff0c;准确地分割和匹配单词是至关重要的任务之一。对于处理包含多种语言&#xff08;如中英文混合&#xff09;的文本&#xff0c;常见的分词方法可能不够准确&#xff0c;特别是对汉字和英文单词的处理。本文将介绍如何使用正则表达式&q…

基于Matlab卷积神经网络人脸识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 人脸识别作为计算机视觉领域的关键技术之一&#xff0c;具有广泛的应用前景&#xff0c;如安全…

Add object from object library 从对象库中添加内置器件

Add object from object library 从对象库中添加内置器件 正文正文 对于 Lumerical,有些时候我们在使用中,可能需要从 Object library 中添加器件,通常我们的做法是手动添加。如下图所示,我们添加一个 Directional Coupler 到我们的工程文件中: 但是这种操作方式不够智能…

基于HTML5和CSS3搭建一个Web网页(二)

倘若代码中有任何问题或疑问&#xff0c;欢迎留言交流~ 网页描述 创建一个包含导航栏、主内容区域和页脚的响应式网页。 需求: 导航栏: 在页面顶部创建一个导航栏&#xff0c;包含首页、关于我们、服务和联系我们等链接。 设置导航栏样式&#xff0c;包括字体、颜色和背景颜…

会话机制:Cookie

1、cookie的作用 cookie和session机制其实都是为了保存会话的状态。 cookie是将会话的状态保存在浏览器客户端上。&#xff08;cookie数据存储在浏览器客户端上的。&#xff09; session是将会话的状态保存在服务器端上。&#xff08;session对象是存储在服务器上。&#xff…

上门服务系统开发|东邻到家系统|上门服务系统开发流程

上门服务小程序的开发流程是一个复杂且精细的过程&#xff0c;涉及到需求分析、设计规划、开发实施、测试验收以及上线运营等多个环节。下面将详细介绍上门服务小程序的开发流程&#xff0c;帮助读者全面了解并掌握其中的关键步骤。 一、需求分析 在开发上门服务小程序之前&am…

API攻击呈指数级增长,如何保障API安全?

从远程医疗、共享汽车到在线银行&#xff0c;实时API是构建数字业务的基础。然而&#xff0c;目前超过90%的基于Web的网络攻击都以API端点为目标&#xff0c;试图利用更新且较少为人所知的漏洞&#xff0c;而这些漏洞通常是由安全团队未主动监控的API所暴露&#xff0c;致使API…

24款奔驰GLE350升级原厂环视全景360影像 抬头显示HUD

奔驰GLE350原厂360全景影像的清晰度通常取决于车辆的具体型号和年份&#xff0c;以及安装的摄像头和显示屏质量。一般来说&#xff0c;原厂360全景影像系统会提供高清的影像&#xff0c;让驾驶者能够清晰地看到车辆周围的环境&#xff0c;帮助进行停车和转弯等操作抬头显示&…

AOP编程

AOP编程 AOP&#xff0c;面向切面编程&#xff0c;一种编程范式&#xff0c;指导开发者如何组织程序结构。 OOP&#xff0c;面向对象编程&#xff0c;一种编程思想。 AOP&#xff0c;提供了一种机制,可以将一些横切系统中多个模块的共同逻辑(如日志记录、事务管理、安全控制等…

WordPress搭建流程

1. 简介 WordPress 是一个 PHP 编写的网站制作平台。WordPress 本身免费,并且拥有众多的主题可以使用,适合用于搭建个人博客、公司官网、独立站等。 2. 环境准备 2.1 WordPress 下载 WordPress 可以在 Worpress中文官网 下载(如果后续要将后台调成中文的话,一定要从中文…

定时器

文章目录 11.11.21.31.41.5 22.12.2 基本定时器 框图2.32.42.4.12.4.22.4.32.4.42.4.52.4.6 2.5 定时器 溢出时间计算方法2.6 定时器 中断 实验配置步骤2.72.7.12.7.2 和42.7.32.7.52.7.6 33.13.23.2.1 时钟源3.2.23.2.43.2.6 3.33.43.4.13.4.23.4.33.4.43.4.53.4.5.13.4.5.23.…

机器学习实验------Adaboost算法

第1关:什么是集成学习 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 第2关: Boosting 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 第3关:Adaboost算法流程 任务描述 本关任务:用Python实现Adaboost,并通过鸢尾花数据集…

Uniapp自定义默认返回按钮回退页面

//自定义后退时的操作onBackPress() {this.back1();return true;}, methods: { //跳转到 tabBar 页面&#xff0c;并关闭其他所有非 tabBar 页面back1() {uni.switchTab({url: /pages/mangement/mangement});},//关闭所有页面&#xff0c;打开到应用内的某个页面。back1() {uni…

优雅的代码规范,提升代码质量

优雅的代码规范&#xff0c;提升代码质量 分类 编程技术 在软件开发中&#xff0c;优雅的代码规范可以帮助我们写出既美观又实用的代码。 以下是提升代码质量的建议性规范&#xff1a; 命名清晰&#xff1a;使用描述性强的命名&#xff0c;让代码自我解释。简洁性&#xff1…

捕食者优化算法,原理详解,MATLAB代码免费获取

捕食者优化算法&#xff08;Hunter–prey optimization&#xff0c;HPO&#xff09;是一种受自然启发的群智能优化算法。该算法的灵感来自于捕食动物(如狮子、豹和狼)以及猎物(如雄鹿和瞪羚)的行为。动物狩猎行为有很多场景&#xff0c;其中一些场景已经转化为优化算法。本文使…

如何选择一款安全高效的数据自动同步工具?

随着科技的不断发展&#xff0c;企业处理的数据量愈发庞大。数字化浪潮的涌现使得数据在业务活动和决策中的角色变得日益重要&#xff0c;然而这些数据往往分布在不同的位置&#xff0c;需要进行同步和分类&#xff0c;以便更有效地利用。以下是一些常见的数据自动同步场景&…

UE5 像素流web 交互2

进来点个关注不迷路谢谢&#xff01; ue 像素流交互多参数匹配 主要运用像素流的解析json 状态&#xff1a; 测试结果&#xff1a; 浏览器控制台&#xff1a; 接下来编写事件传递 关注下吧&#xff01;

模板编译之入口分析

Vue 是一个渐进式 JavaScript 框架&#xff0c;提供了简单易用的模板语法&#xff0c;帮助开发者以声明式的方式构建用户界面。Vue 的模板编译原理是其核心之一&#xff0c;它将模板字符串编译成渲染函数&#xff0c;并在运行时高效地更新 DOM。本文将深入探讨 Vue 模板编译的原…