复试 || 就业day11(2024.01.07)算法篇

文章目录

  • 前言
  • 数组序号转换
  • 检查整数及其两倍数是否存在
  • 有多少小于当前数字的数字
  • 上升下降字符串
  • 找出数组中的幸运数
  • 统计最大组的数目

前言

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

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

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

数组序号转换


题目链接:数组序号转换

C++版AC代码:

class Solution {
public:vector<int> arrayRankTransform(vector<int>& arr) {vector<int> res;if (arr.empty()) return res;      // 特判空,以免第9行代码报错vector<int> tmp = arr;sort(tmp.begin(), tmp.end());vector<int> unique;unique.push_back(tmp[0]);int cnt = 0;for (int i = 1; i < tmp.size(); i ++ ) if (unique.empty() || unique[cnt] != tmp[i])unique.push_back(tmp[i]), cnt ++; // unique用来剔除重复元素,排序后的重复元素只能在一起unordered_map<int, int> m;for (int i = 0; i < unique.size(); i ++ ) m[unique[i]] = i + 1;for (int i = 0; i < arr.size(); i ++ ) res.push_back(m[arr[i]]);return res;}
};

C++版AC代码:

也可以使用 unordered_set 来对上述进行去重的处理,当然 unordered_setset 是无序集合,不支持排序,想要排序还需转回 vector

class Solution {
public:vector<int> arrayRankTransform(vector<int>& arr) {unordered_set<int> s(arr.begin(), arr.end());// sort(s.begin(), s.end());     s是一个无序集合,无法调用sortvector<int> tmp(s.begin(), s.end());sort(tmp.begin(), tmp.end());unordered_map<int, int> m;for (int i = 0, j = 1; i < tmp.size(); i ++, j ++ )m[tmp[i]] = j;vector<int> res;for (int i = 0; i < arr.size(); i ++ ) res.push_back(m[arr[i]]);return res;}
};

检查整数及其两倍数是否存在


题目链接:检查整数及其两倍数是否存在

C++版AC代码:

class Solution {
public:bool checkIfExist(vector<int>& arr) {unordered_map<int, int> m;for (int i = 0; i < arr.size(); i ++ ) m[arr[i]] ++;bool flag = false;for (int i = 0; i < arr.size(); i ++ )if (m.count(arr[i] * 2)) {if (arr[i] == 0 && m[arr[i]] == 1) continue;  // 特判0,需要2个0flag = true;break;}return flag;}
};

有多少小于当前数字的数字


题目链接:有多少小于当前数字的数字

C++版AC代码:

class Solution {
public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {unordered_map<int, int> m;vector<int> tmp = nums;sort(tmp.begin(), tmp.end());for (int i = 0; i < tmp.size(); i ++ ) {if (!m.count(tmp[i])) m[tmp[i]] = i;}vector<int> res;for (int i = 0; i < nums.size(); i ++ ) res.push_back(m[nums[i]]);return res;}
};

上升下降字符串


题目链接:上升下降字符串

C++版AC代码:

class Solution {
public:string sortString(string s) {int n = s.size();unordered_map<char, int> m;for (int i = 0; i < n; i ++ ) m[s[i]] ++;string res;while (n) {for (char c = 'a'; c <= 'z'; ++ c ) if (m.find(c) != m.end() && m[c]) {res += string(1, c);m[c] --, n --;}for (char c = 'z'; c >= 'a'; -- c) if (m.find(c) != m.end() && m[c]) {res += string(1, c);m[c] --, n --;}}return res;}
};

找出数组中的幸运数


题目链接:找出数组中的幸运数

C++版AC代码:

class Solution {
public:int findLucky(vector<int>& arr) {unordered_map<int, int> m;for (int i = 0; i < arr.size(); i ++ ) m[arr[i]] ++;int res = -1;for (auto i = m.begin(); i != m.end(); i ++ ) {int num = i -> first, cnt = i -> second;if (num == cnt) res = max(res, num);   // arr[i] >= 1,无需考虑负数}return res;}
};

统计最大组的数目


题目链接:统计最大组的数目

C++版AC代码:

class Solution {
public:int getacc(int n) {    // 计算数位和int acc = 0;while (n) {int k = n % 10;acc += k;n /= 10;}return acc;}int countLargestGroup(int n) {unordered_map<int, int> m;for (int i = 1; i <= n; i ++ ) m[getacc(i)] ++;int maxpart = 0;for (auto i = m.begin(); i != m.end(); i ++ ) // 找到数字数目最多的组maxpart = max(maxpart, i -> second);int res = 0;for (auto i = m.begin(); i != m.end(); i ++ ) // 统计数字数目最多的组的个数if (i -> second == maxpart) res ++;return res;}
};

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

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

相关文章

书生·浦语大模型第二课作业

作业一&#xff1a;小故事创作 作业要求&#xff1a;使用 InternLM-Chat-7B 模型生成 300 字的小故事&#xff08;需截图&#xff09; 完成情况&#xff1a; 作业二&#xff1a;熟悉 hugging face 下载功能 作业要求&#xff1a;熟悉 hugging face 下载功能&#xff0c;使用…

基于Springboot的摄影跟拍预定管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的摄影跟拍预定管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

使用 openpyxl 库读取 Excel 文件

使用 openpyxl 库来读取 Excel 文件中特定行和列的值: 通过 openpyxl.load_workbook() 函数加载 Excel 文件&#xff0c; 使用 worksheet.cell() 方法获取指定行和列的单元格&#xff0c;并返回其值 注&#xff1a;在运行代码之前确保已安装 openpyxl 库&#xff0c;并且输入…

网络通信(10)-C#TCP客户端实例

本文使用Socket在C#语言环境下完成TCP客户端的实例。 实例完成的功能: 客户端与服务器连接,实现实时刷新状态。 客户端接收服务器的数据。 客户端发送给服务器的数据。 客户端实时判定状态,断开连接后自动重连。 客户端与服务器端发送心跳包。 在VS中创建C# Winform项…

【影刀RPA_如何使用影刀的企业微信指令?】

思路&#xff1a;先用python代码过一遍&#xff0c;再将必要参数填到指令里面。 第一步&#xff1a; 1、在企业微信后台新建应用&#xff0c;设置消息接收地址&#xff08;需要服务器的公网ip地址&#xff09;&#xff0c;进行签名验证。然后&#xff0c;从浏览器中查询ip地址…

Java、Python、C++和C#的界面开发框架和工具的重新介绍

好的&#xff0c;以下是Java、Python、C和C#的界面开发框架和工具的重新介绍&#xff1a; Java界面开发&#xff1a; Swing: 是Java提供的一个基于组件的GUI工具包&#xff0c;可以创建跨平台的图形用户界面。它提供了丰富的组件和布局管理器&#xff0c;使得界面开发相对简单。…

如何使用 CMake 来构建一个共享库(动态库)

tutorial_4/CMakeLists.txt # 声明要求的 cmake 最低版本 cmake_minimum_required( VERSION 2.8 )# 声明一个 cmake 工程 project( HelloSLAM )add_subdirectory(src)tutorial_4/src/CMakeLists.txt #工程添加多个特定的头文件搜索路径 include_directories(include)set(LIBR…

Debian 12

debian | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror apt update & apt upgrade apt dist-upgrade apt-get install fcitx fcitx-*pinyin* dpkg-configure tzdata sudo sh -c dpkg-configure tzdata date -R apt --fix-broken install…

nodejs 不用 electron 实现打开文件资源管理器并选择文件

前言 最近在开发一些小脚本&#xff0c;用 nodejs 实现。其中很多功能需要选择一个/多个文件&#xff0c;或者是选择一个文件夹。 最初的实现是手动输入一个目录&#xff08;这个只是一个普通的终端文本输入&#xff0c;所以按下 tab 没有路径提示&#xff09;&#xff0c;非…

UNION 和 UNION ALL

概述 UNION 和 UNION ALL 都是 SQL 中用于将多个 SELECT 语句的结果合并成一个结果集的操作符。它们都适用于需要将多个表或查询结果合并在一起的情况。但是它们的行为略有不同。 区别 UNION 和 UNION ALL 的区别在于&#xff0c;UNION 会将结果集合并成一个不含重复行的结果…

java springboot 目录组织架构介绍

推荐的package组织方式 com- example- myproject // root packagecom.example.myproject&#xff0c;所有的类和其他package都在root package之下。- Application.java // 应用主类- domain // 用于定义实体映射关系与数据访问相关的接口和实现| - Customer.java| - Custom…

实现并解决微服务间OpenFeign转发文件格式MultipartFile

场景 使用openfeign转发MultipartFile类型的文件时出现了下面的错误。 PostMapping(value "/upload", consumes MediaType.MULTIPART_FORM_DATA_VALUE) ApiOperation(value "导入") public ResponseJson<String> uploadFiles(RequestParam(&quo…

通过IP地址如何进行网络安全防护

IP地址在网络安全防护中起着至关重要的作用&#xff0c;可以用于监控、过滤和控制网络流量&#xff0c;识别潜在威胁并加强网络安全。以下是通过IP地址进行网络安全防护的一些建议&#xff1a; 1. 建立IP地址白名单和黑名单&#xff1a; 白名单&#xff1a;确保只有授权的IP地…

MySQL——用户管理

目录 一.用户管理 二.用户 1.用户信息 2.创建用户 3.删除用户 4. 修改用户密码 三.数据库的权限 1.给用户授权 2.回收权限 一.用户管理 如果我们只能使用root用户&#xff0c;root的权限非常大,这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理&#xff…

Java中的Stream API进阶使用

Java的Stream API是Java 8引入的一个强大的功能&#xff0c;它允许以声明性方式处理数据集合&#xff0c;例如过滤、映射、排序等。下面是一些Stream API的进阶使用&#xff1a; 自定义中间操作&#xff1a;你可以定义自己的中间操作&#xff0c;然后在Stream上使用它。例如&am…

2.5 KERNEL FUNCTIONS AND THREADING

我们现在准备讨论更多关于CUDA内核功能以及启动这些内核功能的效果。在CUDA中&#xff0c;内核函数指定所有线程在并行阶段执行的代码。由于所有这些线程执行相同的代码&#xff0c;CUDA编程是众所周知的单程序多数据&#xff08;SPMD&#xff09;[Ata 1998]并行编程风格的实例…

相交链表【哈希】【双指针】

Problem: 160. 相交链表 文章目录 思路 & 解题方法复杂度哈希技巧 思路 & 解题方法 可以用hash做&#xff0c;也可以做一个技巧。 复杂度 时间复杂度: 添加时间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例&#xff1a; O ( n ) O…

每天刷两道题——第七天+第八天

力扣官网 1.1移动零 给定一个数组 n u m s nums nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序&#xff0c;在不复制数组的情况下原地对数组进行操作。 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 代码 def moveZeroea…

强化学习的数学原理学习笔记 - 蒙特卡洛方法(Monte Carlo)

文章目录 概览&#xff1a;RL方法分类蒙特卡洛方法&#xff08;Monte Carlo&#xff0c;MC&#xff09;MC BasicMC Exploring Starts&#x1f7e6;MC ε-Greedy 本系列文章介绍强化学习基础知识与经典算法原理&#xff0c;大部分内容来自西湖大学赵世钰老师的强化学习的数学原理…

Matytype的安装问题(word及PPT报错问题)

特别针对&#xff1a;mathtype安装了多次&#xff0c;又卸载了多次的用户。 Word报弹错错误&#xff1a;参考 mathtype安装后&#xff0c;打开word出现没找到dll的错误&#xff0c;这个问题较好解决。 如何解决MathType兼容Office 2016-MathType中文网 PPT&#xff08;PowerPoi…