复试 || 就业day15(2024.01.13)算法篇

文章目录

  • 前言
  • 数组中第 K 个独一无二的字符串
  • 统计字符串中的元音子字符串
  • 检查两个字符串是否几乎相等
  • 统计出现过一次的公共字符串
  • 找出 3 位偶数
  • 找到和最大的长度为 K 的子序列

前言

💫你好,我是辰chen,本文旨在准备考研复试或就业
💫文章题目大多来自于 leetcode,当然也可能来自洛谷或其他刷题平台
💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容
🌟 仅给出C++版代码

以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新),欢迎大家的关注:

💥ACM-ICPC算法汇总【基础篇】
💥ACM-ICPC算法汇总【提高篇】
💥AIoT(人工智能+物联网)
💥考研
💥CSP认证考试历年题解

数组中第 K 个独一无二的字符串


题目链接:数组中第 K 个独一无二的字符串

C++版AC代码:

class Solution {
public:string kthDistinct(vector<string>& arr, int k) {unordered_map<string, int> m;for (auto str : arr) m[str] ++;int cnt = 0;for (auto str : arr) if (m[str] == 1) {cnt ++;if (cnt == k) return str;} return "";}
};

统计字符串中的元音子字符串


题目链接:统计字符串中的元音子字符串

C++版AC代码:

class Solution {
public:int countVowelSubstrings(string word) {unordered_set<char> vowel = {'a', 'e', 'i', 'o', 'u'};int res = 0;for (int i = 0; i < word.size(); i ++ ) {unordered_set<char> str;for (int j = i; j < word.size(); j ++ ) {char c = word[j];if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u') {if (j - i < 5) i = j;break;}str.insert(c);if (vowel == str) res ++;}}return res;}
};

检查两个字符串是否几乎相等


题目链接:检查两个字符串是否几乎相等

C++版AC代码:

class Solution {
public:bool checkAlmostEquivalent(string word1, string word2) {unordered_map<char, int> m;for (auto c : word1) m[c] ++;for (auto c : word2) m[c] --;for (auto i : m) if (abs(i.second) > 3) return false;return true;}
};

统计出现过一次的公共字符串


题目链接:统计出现过一次的公共字符串

C++版AC代码:

class Solution {
public:int countWords(vector<string>& words1, vector<string>& words2) {unordered_map<string, int> m1, m2;for (auto word : words1) m1[word] ++;for (auto word : words2) m2[word] ++;int res = 0;for (auto i : m1) if (i.second == 1 && m2[i.first] == 1) res ++;return res;}
};

找出 3 位偶数


题目链接:找出 3 位偶数

C++版AC代码:

O ( n 3 ) O(n^3) O(n3) 的时间复杂度,很慢

class Solution {
public:vector<int> findEvenNumbers(vector<int>& digits) {vector<int> per, dec, unit;   // 百位,十位,个位unordered_map<int, int> m;for (auto x : digits) {if (x != 0) per.push_back(x);if (!(x % 2)) unit.push_back(x);dec.push_back(x);m[x] ++;}vector<int> res;for (auto h : per) {m[h] --;for (auto t : dec) {if (m[t] == 0) continue;m[t] --;for (auto o : unit) {if (m[o] == 0) continue;res.push_back(h * 100 + t * 10 + o);}m[t] ++;}m[h] ++;}                  sort(res.begin(), res.end());// 去重auto last = unique(res.begin(), res.end());res.erase(last, res.end());return res;}
};

C++版AC代码:

枚举所有的三位数偶数,看是否可以用题给数组表示,从小到大进行枚举还可以省去排序

class Solution {
public:vector<int> findEvenNumbers(vector<int>& digits) {unordered_map<int, int> m;for (auto x : digits) m[x] ++;vector<int> res;for (int i = 100; i < 1000; i += 2) {unordered_map<int, int> may;may[i % 10] ++, may[i / 10 % 10] ++, may[i / 100] ++;bool flag = true;for (auto k : may) if (!m.count(k.first) || k.second > m[k.first]) {flag = false;break;}if (flag) res.push_back(i);}return res;}
};

找到和最大的长度为 K 的子序列


题目链接:找到和最大的长度为 K 的子序列

C++版AC代码:

class Solution {
public:static bool cmp (int a, int b) {return a > b;}vector<int> maxSubsequence(vector<int>& nums, int k) {vector<int> tmp = nums;sort(tmp.begin(), tmp.end(), cmp);unordered_map<int, int> m;for (int i = 0; i < k; i ++ ) m[tmp[i]] ++;vector<int> res;int cnt = 0;for (auto x : nums) {if (m.count(x) && m[x]) {res.push_back(x);cnt ++, m[x] --;}if (cnt == k) break;}return res;}
};

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

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

相关文章

Jenkins入门知识:什么是Jenkins?以及它的历史与发展

Jenkins是一个开源的自动化服务器。借助Jenkins&#xff0c;团队可以通过自动化来加速软件开发过程。Jenkins管理和控制整个生命周期中的软件交付过程&#xff0c;包括构建、文档、测试、打包、阶段、部署、静态代码分析等。 您可以设置Jenkins来监控GitHub、Bitbucket或GitLa…

openssl3.2 - 官方demo学习 - cms - cms_enc.c

文章目录 openssl3.2 - 官方demo学习 - cms - cms_enc.c概述笔记END openssl3.2 - 官方demo学习 - cms - cms_enc.c 概述 用证书对明文进行CMS加密 CMS操作过的最终内容(除了反操作(解压缩, 解密))都是可见字符(数据用base64过了一遍). 笔记 /*! \file cms_enc.c * \note o…

代码随想录算法训练营第四天 |24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题02.07.链表相交,142、环形链表II

链表基础 1、链表定义&#xff1a; &#xff08;1&#xff09;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null…

JavaScript高级程序设计读书记录(十三):期约与异步函数

ECMAScript 6 及之后的几个版本逐步加大了对异步编程机制的支持&#xff0c;提供了令人眼前一亮的新特性。ECMAScript 6 新增了正式的 Promise&#xff08;期约&#xff09;引用类型&#xff0c;支持优雅地定义和组织异步逻辑。接下来几个版本增加了使用 async 和 await 关键字…

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

ROS无人机开发常见错误

一. Ubuntu 相关 1、SSH远程连接报错 解决方案&#xff1a;终端运行上述图中选中部分&#xff0c;更新一下即可 第一步&#xff1a; 第二步&#xff1a;根据提示输入yes后输入密码即可 第三步&#xff1a;成功后如下图所示 2、解决“E 无法获得锁/ var/lib/apt/lists/ (11 资…

Altium Desigenr 孔 规则修改2

1、过孔修改 在这里插入图片描述 2、物理孔

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator 线性控制器设计-轨迹跟踪&#xff08;Fellow a Desired Path&#xff09;

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2

在 Part 1 中&#xff0c;我们一起了解了什么是 Prometheus 和 Grafana&#xff0c;以及使用这些工具的前提条件和优势。在本部分&#xff0c;将继续带您学习如何安装 Helm 以及如何使用 Prometheus Helm Charts。 开始使用 Helm 和 Helm Chart ArtifactHub 为 Helm Chart 提供…

模拟开关--扩展模拟采集通道需要考虑的问题

2、多通道模拟采集 项目需求多通道的模拟采集&#xff0c;但是MCU内置ADC通道有限&#xff0c;如果外置ADC芯片则会升高成本、增大电路板尺寸等&#xff0c;同时对电路Layout难度也有上升&#xff0c;需要考虑电路板的各种电磁特性和噪声。 所以一般的多通道采集方案&#xff…

Netty开篇——NIO章上(三)

Java NIO基本介绍 java non-blocking I/O 称为NIO(也叫New IO)。JDK4开始提供,同步非阻塞相关内容在 java.nio 包及子包下&#xff0c;对java.io 包中的很多类进行改写。三大核心: Channel(通道)&#xff0c;Buffer(缓冲区),Selector(选择器)NIO是面向缓冲区或者面向块编程的。…

Centos7.9服务器编译安装Nginx1.24.0和php8.3

Centos7.9服务器编译安装Nginx1.24.0和php8.3 服务器nginx原版本有安全漏洞,需要升级,由于原始是yum源安装,通过yum直接升级,无法正常升级完成,故而需要卸载yum源,重新编译安装。 1、查看原来nginx版本,ps查看原来nginx进程,运行状态: ps aux | grep nginx ​ root …

【HuggingFace Transformer库学习笔记】基础组件学习:Evaluate

基础组件学习——Evaluate Evaluate使用指南 查看支持的评估函数 # include_community&#xff1a;是否添加社区实现的部分 # with_details&#xff1a;是否展示更多细节 evaluate.list_evaluation_modules(include_communityFalse, with_detailsTrue)加载评估函数 accuracy…

RK3568驱动指南|第十二篇 GPIO子系统-第135章 GPIO子系统与pinctrl子系统相结合实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

解决ELK日志收集中Logstash报错的关键步

ElK执行日志收集的时候logstash报错&#xff1a; Failed to execute action {:action>LogStash::PipelineAction::Create/pipeline_id:main, :exception>“LogStash::ConfigurationError”, :message>“Expected one of [^\r\n], “\r”, “\n” at line 88, column 4…

ChromeDriver 添加到系统PATH

在软件测试和自动化脚本中&#xff0c;ChromeDriver是一个不可或缺的工具。为了方便使用&#xff0c;将其添加到系统PATH中是一个明智的选择。以下是在Windows、macOS或Linux上完成此任务的详细步骤。 在 Windows 上&#xff1a; 下载并保存 ChromeDriver&#xff1a; 访问Chro…

医院患者满意度调查方案

制定医院患者满意度调查方案是确保调查的有效性和有针对性的关键步骤。以下是一些编制医院患者满意度调查方案的关键步骤和考虑因素&#xff1a; 1. 确定调查目标&#xff1a; 首先&#xff0c;明确调查的主要目标。你希望了解哪些方面的患者满意度&#xff1f;这可能包括医疗…

openEuler安装Docker艰辛路程

文章目录 安装docker测试docker关于windows docker拉取镜像查看所有镜像删除镜像删除不在运行的进程强制删除正在运行的进程 启动docker容器服务-d测试 停止docker容器服务查看docker启动进程更新容器(没有自启动功能&#xff0c;更新为自启动)docker端口映射进入容器修改内容退…

flume

第 1 章 Flume 概述 1.1 Flume 定义 Flume 是 Cloudera 提供的一个高可用的&#xff0c;高可靠的&#xff0c;分布式的 海量日志采集、聚合和传 输的系统 。 Flume 基于流式架构&#xff0c;灵活简单。 为什么选用 Flume Python 爬虫数据 Java 后台日志数据 服…

Unity AssetBundles资源管理和热更新

项目中的做法&#xff0c;在项目中一般会把资源按照文件目录去划分资源&#xff0c;以文件路径的名字作为AB的名字&#xff0c;一般都是把资源的这些放到预处理中。 一般会分为几个类型&#xff0c;比如把单个文件夹下的每个资源进行打bundle&#xff0c;把单个文件夹下的所有资…