备战春招——12.04 算法

哈希表

哈希表主要是使用 map、unordered_map、set、unorerdered_set、multi_,完成映射操作,主要是相应的函数。map和set是有序的,使用的是树的形式,unordered_map和unordered_set使用的是散列比表的,无序。

相应函数

set multiset

相应的地址

map multimap

相应地址

unordered_map unordered_multimap

相应位置

unordered_set unordered_multiset

相应地址

刷题

多数元素

在这里插入图片描述
最朴素的方法,map统计,绷不住了,嘎嘎嘎

class Solution {
public:int majorityElement(vector<int>& nums) {map<int,int> d;for(int i=0;i<nums.size();i++){d[nums[i]]++;if(d[nums[i]]>nums.size()/2){return nums[i];}}return 0;}};

罗马数字转整数

在这里插入图片描述
只根据规定的格式进行匹配

class Solution {
public:int romanToInt(string s) {map<char,int> d;d['I'] = 1;d['V'] = 5;d['X'] = 10;d['L'] = 50;d['C'] = 100;d['D'] = 500;d['M'] = 1000;char last;int sum = 0; for(int i =0;i<s.length();i++){sum += d[s[i]];if(last == 'I'&&(s[i]=='V'| s[i]=='X')){sum-=2;last = ' ';} else if(last == 'X'&& (s[i]=='L'| s[i]=='C')){sum-=20;last = ' ';}else if(last=='C'&&(s[i]=='D'| s[i]=='M')){sum-=200;last = ' ';}else{last = s[i];}}return sum;}
};

整数转罗马数字

在这里插入图片描述
直接暴力if eiseif,绷不住了

class Solution {
public:string intToRoman(int num) {map<int,char> d;d[1]  = 'I';d[5] = 'V';d[10] = 'X';d[50] = 'L' ;d[100] ='C';d[500] = 'D';d[1000] = 'M' ;string s;int  n=num;while(n>0){if(n/1000){s.push_back(d[1000]);n-=1000;}else if(n/500){if(n>=900){s.push_back(d[100]);s.push_back(d[1000]);n-=900;}else{s.push_back(d[500]);n-=500;}}else if(n/100){if(n>=400){s.push_back(d[100]);s.push_back(d[500]);n-=400;}else{s.push_back(d[100]);n-=100;}}else if(n/50){if(n>=90){s.push_back(d[10]);s.push_back(d[100]);n-=90;}else{s.push_back(d[50]);n-=50;}}else if(n/10){if(n>=40){s.push_back(d[10]);s.push_back(d[50]);n-=40;}else{n-=10;s.push_back(d[10]);}}else if(n/5){if(n>=9){s.push_back(d[1]);s.push_back(d[10]);n-=9;}else{n-=5;s.push_back(d[5]);}}else{if(n>=4){s.push_back(d[1]);s.push_back(d[5]);n-=4;}else{n-=1;s.push_back(d[1]);}}}return s;}
};

电话号码的字母组合

在这里插入图片描述
就是暴力,emm,题解挺简单的,用一个map存储映射,然后开始暴力操作。

class Solution {
public:vector<string> letterCombinations(string digits) {map<int,string> m;m['2']="abc";m['3']="def";m['4']="ghi";m['5']="jkl";m['6']="mno";m['7']="pqrs";m['8']="tuv";m['9']="wxyz";vector<string> data;for(int i=0;i<digits.length();i++){vector<string> d;d=data;data.clear();string digi = m[digits[i]];for(int j=0;j<digi.length();j++){if(d.empty()){string aaa;aaa+=digi[j];data.push_back(aaa); }else{for(int h=0;h<d.size();h++){data.push_back(d[h]+digi[j]);}}  }}return data;}
};

存在重复元素

在这里插入图片描述
就一个集合解决

class Solution {
public:bool containsDuplicate(vector<int>& nums) {set<int> data;for(int i=0;i<nums.size();i++){if(data.find(nums[i])==data.end()){data.insert(nums[i]);}else{return true;}}return false;}
};

重复元素2

在这里插入图片描述

用一个映射存储数据,直接遍历,可能某个元素会出现多此,所以需要进行一个map位置的实时更新。

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {map<int,int> m;for(int i=0;i<nums.size();i++){if(m.find(nums[i])!=m.end()){if((i-m[nums[i]])<=k){return true;}else{m[nums[i]]=i;}}else{m[nums[i]]=i;}}return false;}
};

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

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

相关文章

【Java】类和对象之超级详细的总结!!!

文章目录 前言1. 什么是面向对象&#xff1f;1.2面向过程和面向对象 2.类的定义和使用2.1什么是类&#xff1f;2.2类的定义格式2.3类的实例化2.3.1什么是实例化2.3.2类和对象的说明 3.this引用3.1为什么会有this3.2this的含义与性质3.3this的特性 4.构造方法4.1构造方法的概念4…

【VRTK】【VR开发】【Unity】10-连续移动

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 连续移动与瞬移有如下不同: 连续移动不容易打断沉浸对于新手或者不适应者来说更容易晕动 我对玩家的建议:连续移动前后左右可以用摇杆,转向用自己…

低代码如何降低门槛、快速交付、实现可持续IT架构?

目录 低代码开发模式期望达成的目标 1.降低开发门槛 2.加快系统交付 3.建立可持续发展的IT架构 写在最后 低代码的概念&#xff0c;最早提出的时间是在2014年左右&#xff0c;随后一直处于上升期&#xff0c;随着前两年阿里、腾讯的相继入场&#xff0c;竞争逐步加大。低代…

设计简单高效的短链系统

目录 引言 1. 短链系统的原理 1.1 长链接生成短码 1.2 短码映射到长链接 1.3 短码重定向 1.4 过期短 URL 清理 2. 设计与实现 2.1 数据存储 2.2 短码生成 2.3 接口设计 2.4 安全性考虑 2.5 访问性能优化 引言 在当今数字化时代&#xff0c;人们对信息的分享需求不断…

市场缺口投资者应该怎么做? 昂首资本一招就能盈利

当在市场交易分析中&#xff0c;投资者发现市场缺口或者价格缺口的时候&#xff0c; 昂首资本问各位投资者应该怎么才能抓住机会盈利一波。 其实在技术分析中的这个术语指的是&#xff1a;前一根棒线的收盘价和下一根棒线的开盘价之间有差距的情况。例如&#xff0c;当做市商将…

【SpringBoot系列】SpringBoot时间字段格式化

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Allegro无法模块复用的解决办法

Allegro无法模块复用的解决办法 在用Allegro做PCB设计的时候,模块复用是使用的比较频繁的功能,对于有相同模块的单板,可以节省大量的时间。 模块复用的功能不细说,具体参考以前的文章。 有时会遇到模块复用的时候出现如下报错 无法匹配,有时如果因为Device而无法复用,就…

python提取通话记录中的时间信息

您需要安装适合中文的SpaCy模型。您可以通过运行 pip install spacypython -m spacy download zh_core_web_sm来安装和下载所需的模型。 import spacy# 加载中文模型 nlp spacy.load(zh_core_web_sm)# 示例电话记录文本 text """ Agent: 今天我们解决一下这…

Linux CentOS7 安装Docker

CentOS7安装Docker&#xff1a; Docker简介 Docker是一个开源的容器化平台&#xff0c;可帮助开发者轻松地创建、部署和运行应用程序。Docker使开发人员能够在一个独立的容器中打包应用程序及其依赖项&#xff0c;这样他们就可以轻松地将应用程序移植到任何其他环境中。Docke…

基础堆溢出原理与DWORD SHOOT实现

堆介绍 堆的数据结构与管理策略 程序员在使用堆时只需要做三件事情&#xff1a;申请一定大小的内存&#xff0c;使用内存&#xff0c;释放内存。 对于堆管理系统来说&#xff0c;响应程序的内存使用申请就意味着要在"杂乱"的堆区中"辨别"出哪些内存是正在…

Python实现交易策略评价指标-夏普比率

1.夏普比率的定义 在投资的过程中&#xff0c;仅关注策略的收益率是不够的&#xff0c;同时还需要关注承受的风险&#xff0c;也就是收益风险比。 夏普比率正是这样一个指标&#xff0c;它表示承担单位的风险会产生多少超额收益。用数学公式描述就是&#xff1a; S h a r p R…

【算法每日一练]-图论(保姆级教程 篇6(图上dp))#最大食物链 #游走

目录 题目&#xff1a;最大食物链 解法一&#xff1a; 解法二&#xff1a; 记忆化 题目&#xff1a;游走 思路&#xff1a; 题目&#xff1a;最大食物链 解法一&#xff1a; 我们标记f[i]是被f[x]捕食的点对应的类食物链数 不难得出&#xff1a; f[x]∑(f[i]) 首先从生…

206 反转链表

解题思路可以有两种方法&#xff1a;递归 or 迭代。 \qquad 迭代&#xff1a;通过使用for循环遍历&#xff0c;完成目标。方法直观&#xff0c;容易理解。 \qquad 递归&#xff1a;通过函数调用其自身&#xff0c;完成目标。递归最复杂、最重要的部分就是递归函数的构建&#…

【数据结构】——栈|队列(基本功能)

目录 栈 基本概念 栈的常见基本操作 栈的存储 ✌栈的基本操作实现 栈的构建 栈的初始化 入栈 打印栈 出栈 获取栈顶元素 获取栈的有效元素个数 判断栈是否为空 销毁栈 队列 基本概念 队列的常见基本操作 ✌队列的基本操作实现 队列的构建 初始化 入队列 出…

Spring Security 6.x 系列(9)—— 基于过滤器链的源码分析(二)

一、前言 在本系列文章&#xff1a; Spring Security 6.x 系列&#xff08;4&#xff09;—— 基于过滤器链的源码分析&#xff08;一&#xff09;中着重分析了Spring Security在Spring Boot 的自动配置、 DefaultSecurityFilterChain 的构造流程、FilterChainProxy 的构造流…

详解原生Spring当中的事务

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

Spring Security 6.x 系列(8)—— 源码分析之配置器SecurityConfigurer接口及其分支实现

一、前言 本章主要内容是关于配置器的接口架构设计&#xff0c;任意找一个配置器一直往上找&#xff0c;就会找到配置器的顶级接口&#xff1a;SecurityConfigurer。 查看SecurityConfigurer接口的实现类情况&#xff1a; 在 AbstractHttpConfigurer 抽象类的下面可以看到所有…

idea类和方法模版

类模版 修改目标位置 class #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end #parse("File Header.java")/*** ${Description}* author whc ${YEAR}/${MONTH}/${DAY}* version v1.0 */public class ${NAME} { }inte…

【网络安全】虚假IP地址攻击如何防范?

在当今的网络时代&#xff0c;虚假IP地址攻击已成为一种新型的网络攻击方式&#xff0c;给网络安全带来了极大的威胁。那么&#xff0c;什么是虚假IP地址攻击&#xff1f;又如何进行溯源和防范呢&#xff1f;本文将为您揭开这一神秘面纱。 一、虚假IP地址攻击概述 虚假IP地址攻…

[python]离线加载fetch_20newsgroups数据集

首先手动下载这个数据包 http://qwone.com/~jason/20Newsgroups/20news-bydate.tar.gz 下载这个文件后和脚本放一起就行&#xff0c;然后 打开twenty_newsgroups.py文件&#xff08;在fetch_20newsgroups函数名上&#xff0c;右键转到定义即可找到&#xff09; 之后运行代码即…