复试 || 就业day05(2023.12.31)算法篇

文章目录

  • 前言
  • 找不同
  • 最长回文串
  • 找到所有数组中消失的数字
  • 下一个更大元素 I
  • 键盘行

前言

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

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

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

找不同


题目链接:找不同

C++版AC代码:

哈希

class Solution {
public:char findTheDifference(string s, string t) {unordered_map<char, int> m;for (int i = 0; i < s.size(); i ++ ) m[s[i]] ++;for (int i = 0; i < t.size(); i ++ ) m[t[i]] --;char res;for (auto i = m.begin(); i != m.end(); i ++ )if (i -> second == -1){res = i -> first;break;}return res;}
};

C++版AC代码:

题解中一种有趣的解法:累加 t 串的 ASCII,累加 s 串的 ASCII,相减即为多出的字符的 ASCII

class Solution {
public:char findTheDifference(string s, string t) {int ascii = 0;for (int i = 0; i < t.size(); i ++ ) ascii += t[i] - 'a';for (int i = 0; i < s.size(); i ++ ) ascii -= s[i] - 'a';return 'a' + ascii;}
};

最长回文串


题目链接:最长回文串

C++版AC代码:

class Solution {
public:int longestPalindrome(string s) {unordered_map<char, int> m;for (int i = 0; i < s.size(); i ++ ) m[s[i]] ++;int res = 0, odd = 0;for (auto i = m.begin(); i != m.end(); i ++ ){int k = i -> second;if (!(k % 2)) res += k;else{res += k - 1;odd = 1;}}return res + odd;}
};

找到所有数组中消失的数字


题目链接:找到所有数组中消失的数字

C++版AC代码:

class Solution {
public:vector<int> findDisappearedNumbers(vector<int>& nums) {vector<int> res;unordered_map<int, int> m;for (int k : nums) m[k] = 1;for (int i = 1; i <= nums.size(); i ++ ) if (!m.count(i)) res.push_back(i);return res;}
};

下一个更大元素 I


题目链接:下一个更大元素 I

C++版AC代码:

单调栈+哈希表,单调栈适用于:求下一个更大的元素;维护一个从栈顶到栈底单调递增的栈,栈顶元素(若存在的话)即为当前元素右边的比他大的第一个元素,因此在构建单调栈的时候需要逆序遍历 nums2,在当前元素 >= st.top() 的时候,需要弹出栈顶的元素直至栈空或栈顶元素大于当前元素。

class Solution {
public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {unordered_map<int, int> m;stack<int> st;for (int i = nums2.size() - 1; i >= 0; -- i){while (!st.empty() && nums2[i] >= st.top()) st.pop();m[nums2[i]] = st.empty() ? -1 : st.top();st.push(nums2[i]);}vector<int> res(nums1.size());for (int i = 0; i < nums1.size(); i ++ ) res[i] = m[nums1[i]];return res;}
};

键盘行


题目链接:键盘行

C++版AC代码:

💩💩💩屎山代码,自己看的都难受,不太想写了,赶紧打个卡而已,祝大家新年快乐!

class Solution {
public:vector<string> findWords(vector<string>& words) {vector<string> res;string s0 = "qwertyuiop", s1 = "asdfghjkl", s2 = "zxcvbnm";for (auto word : words){string tmp = word;for (int i = 0; i < word.size(); i ++ ) {if (word[i] >= 'A' && word[i] <= 'Z') word[i] += 32;           // 根据ASCII大写变小写}bool flag = true;int key;if (s0.find(word[0]) != -1) key = 0;else if (s1.find(word[0]) != -1) key = 1;else key = 2;for (int i = 1; i < word.size(); i ++ ){if (key == 0){                           // 第一行if (s0.find(word[i]) == -1){  flag = false;break;}}else if (key == 1){                      // 第二行if (s1.find(word[i]) == -1){flag = false;break;}}else {                                    // 第三行if (s2.find(word[i]) == -1){flag = false;break;}}}if (flag) res.push_back(tmp);}return res;}
};

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

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

相关文章

在Go中使用Goroutines和Channels发送电子邮件

学习如何使用Goroutines和Channels在Go中发送电子邮件 在现代软件开发的世界中&#xff0c;通信是一个关键元素。发送电子邮件是各种目的的常见实践&#xff0c;例如用户通知、报告等。Go是一种静态类型和编译语言&#xff0c;为处理此类任务提供了高效和并发的方式。在本文中&…

pycharm配置pyqt5的ui文件转py文件的小工具

在PyCharm中配置 PyQt5 的 .ui 文件转 .py 文件的小工具其实是配置一个外部工具&#xff0c;以便可以直接在 IDE 中通过单击按钮来完成这个转换。你需要使用 pyuic5 命令&#xff0c;它是 PyQt5 的工具集之一&#xff0c;用于将 .ui 文件&#xff08;用 Qt Designer 创建的&…

BED 文件格式 chip-seq m6a数据可视化会用到

General usage — bedtools 2.31.0 documentationhttps://bedtools.readthedocs.io/en/latest/content/general-usage.html BED格式&#xff08;Browser Extensible Data format&#xff09;是一种在生物信息学中广泛使用的文本文件格式&#xff0c;用于描述基因组上的特征和…

消息队列考点梳理 + 高频面试题

你好&#xff0c;本文我将和你一起梳理面试中消息队列的高频考点&#xff0c;做到温故知新。 面试中如何考察消息队列 消息队列作为日常开发中应用最高频的基础组件之一&#xff0c;相关的问题自然也是面试中的常客。 在面试中对消息队列的考察方式&#xff0c;主要包括两种…

机器人中的数值优化之线性共轭梯度法

欢迎大家关注我的B站&#xff1a; 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 本文ppt来自深蓝学院《机器人中的数值优化》 目录 1.无约束优化方法对比 2.Hessian-vec product 3.线性共轭梯度方法的步长​编辑 4.共轭梯度…

7.10非递减子序列(LC491-M)

算法&#xff1a; 在90.子集II (opens new window)中我们是通过排序&#xff0c;再去重来达到去重的目的。 而本题求自增子序列&#xff0c;是不能对原数组进行排序的&#xff0c;排完序的数组都是自增子序列了。 肯定还是回溯算法。 画树&#xff1a; 树里面其实有两个注意…

[python]python利用pyaudio录制系统声音没有立体声混音怎么录制系统音频

当电脑没有立体声混音导致Python写代码无法使用pyaudio进行录制系统声音怎么办&#xff1f;查阅资料和安装驱动等方法都不行&#xff0c;难道没办法了吗&#xff1f;那为什么电脑其他软件可以做到呢&#xff1f;因此研究了一下pyaudio在没有立体声混音情况下确实无法录制声音&a…

SpringBoot发布项目到docker

Dockerfile FROM openjdk:11 # 作者 MAINTAINER chenxiaodong<2774398338qq.com># 安装 vim # RUN yum -y install vim# 环境变量 # 进入容器后的默认工作目录 ENV WORKPATH /usr/local/webapp ENV EXECFILE Docker2Application-0.0.1-SNAPSHOT.jarRUN mkdir -p $WORKPA…

Android Matrix画布Canvas旋转Rotate,Kotlin

Android Matrix画布Canvas旋转Rotate&#xff0c;Kotlin private fun f1() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.height, Bitmap.Config.…

hibernate 使用注解+拦截器实现自动开启、关闭session,提交、回滚事务

hibernate 使用注解+注解拦截器实现自动开启、关闭session,开启、提交、回滚事务 项目为springboot项目 ,springboot版本为:2.5.11, hiernate-core5.4.3 版本。spring-xxx 等为5.3.17版本 注意:在spring-xxx4.x版本+ hiernate-core5.x.x版本中,hibernate的配置 true是有效的…

软件开发新手用哪个IDE比较好?软件开发最好的IDE都在这!

目录 IDES 的优点 最佳编程 IDE 列表 Java 开发的流行集成开发环境 JetBrains 的 IntelliJ IDEA NetBeans 适用于 C/ C、C# 编程语言的最佳 IDE Visual Studio 和 Visual Studio 代码 Eclipse PHP 开发的最佳 IDE PHPStorm Sublime Text Atom JavaScript 的顶级 I…

局域网下的ROS多机通信

文章目录 一、通用控制模式二、网络连接三、软件设置3.1 ROS主机的bashrc文件3.2 ROS从机的bashrc文件3.3 注意事项四、远程控制4.1 SSH4.2 VNC五、具体操作流程安装ssh网络静态ip设置配置文件修改ssh登录多机通信文件配置参考

Python:正则表达式速通,码上上手!

1前言 正则表达式&#xff08;Regular Expression&#xff09;是一种用来描述字符串模式的表达式。它是一种强大的文本匹配工具&#xff0c;可以用来搜索、替换和提取符合特定模式的文本。 正则表达式由普通字符&#xff08;例如字母、数字、符号等&#xff09;和元字符&#…

运维工程师的未来出路:在技术演进中拓宽职业版图

运维工程师的出路到底在哪里&#xff1f; 运维工程师&#xff0c;这个看似传统的IT角色&#xff0c;在日新月异的技术浪潮中&#xff0c;其职业发展路径正在经历一场深刻的变革。他们不仅是企业IT系统的守护者&#xff0c;更是推动技术创新和业务发展的重要力量。随着云计算、…

2023 AI开发者生态报告

随着人工智能技术的飞速发展&#xff0c;全球IT市场对AI的投入持续增长&#xff0c;预计到2027年将达到4236亿美元。中国作为AI领域的重要参与者&#xff0c;其投资规模预计将占全球的9%。在这样的背景下&#xff0c;2023年的《AI开发者生态报告》为我们揭示了人工智能时代的技…

Linux的账号及权限管理

一.管理用户账号 1.1 用户账户的分类 1.1.1 用户账号的分类 超级用户&#xff1a;&#xff08;拥有至高无上的权利&#xff09; root用户是Linux操作系统中默认的超级用户账号&#xff0c;对本主机拥有最高的权限&#xff0c;系统中超级用户是唯一的。普通用户&#xff1a; …

centos7.9 TCP 加速

BBR是谷歌开发的新的TCP加速算法&#xff0c;在网络状况不好的服务器上开启TCP的bbr&#xff0c;可以在无需增加任何硬件投入的情况下实现网络加速&#xff0c;并且客户端无需做任何配置&#xff0c;因此使用起来非常的方便。TCP加速对网络状况较好的内网环境&#xff0c;或者大…

【Python_PySide2学习笔记(二十一)】输入对话框QInputDialog类的基本用法

输入对话框QInputDialog类的基本用法 输入对话框QInputDialog类的基本用法前言正文1、整数输入框 QInputDialog.getInt()2、浮点数输入框 QInputDialog.getDouble()3、单行文本输入框 QInputDialog.getText()4、多行文本输入框 QInputDialog.getMultiLineText()5、下拉列表输入…

Mysql高阶语句及存储过程

目录 空值(NULL) 和 无值() 的区别&#xff1a; 正则表达式&#xff1a; 存储过程&#xff1a; 创建存储过程&#xff1a; 存储过程的参数&#xff1a; 存储过程的控制语句&#xff1a; mysql高阶语句 case是 SQL 用来做为if&#xff0c;then&#xff0c;else 之类逻辑的…

Python常用技能手册 - 基础语法

系列 Python常用技能手册 - 基础语法 Python常用技能手册 - 模块module Python常用技能手册 - 包package 目录 四大数据类型 整数 int int() 转型 format() 进制互转 浮点数 float float() 转型 字符串 str str() str转型 布尔值 bool 四大数据结构 列表 list …