carl 哈希表

1.有效的字母异位词

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_map<int, int> mymap;unordered_set<int> result;for (int i = 0; i < nums1.size(); i++){/* code */if (mymap.find(nums1[i])!=mymap.end()){mymap[nums1[i]]++;}else{mymap[nums1[i]]=1;}}for (int i = 0; i < nums2.size(); i++){if (mymap.find(nums2[i])!=mymap.end()){result.insert(nums2[i]);}}return vector<int>(result.begin(),result.end());}
};

2.两个数组的交集
 

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_map<int, int> mymap;unordered_set<int> result;for (int i = 0; i < nums1.size(); i++){/* code */if (mymap.find(nums1[i])!=mymap.end()){mymap[nums1[i]]++;}else{mymap[nums1[i]]=1;}}for (int i = 0; i < nums2.size(); i++){if (mymap.find(nums2[i])!=mymap.end()){result.insert(nums2[i]);}}return vector<int>(result.begin(),result.end());}
};

3.快乐数

class Solution {
public:bool isHappy(int n) {unordered_set<int> myset;int sum = 0;while (n!=1){sum = 0;int tmp = n;//计算各位的平方和while (n!=0){sum =sum + (n % 10) * (n % 10);n = n / 10;}if (myset.find(sum)!=myset.end()){return false;}else{myset.insert(sum);}n = sum;}return true;}
};

4.两数之和

class Solution {
public:vector<int> twoSum(vector<int> &nums,int target){unordered_map<int,int> mymap;for (int i = 0; i < nums.size(); i++){if (mymap.find(nums[i])==mymap.end()){mymap[nums[i]]=i;}}for (int i = 0; i < nums.size(); i++){if (mymap.find(target-nums[i])!=mymap.end()){/* code */auto temp=mymap.find(target-nums[i]);if (i==temp->second){continue;}return vector<int>{i,temp->second};}}return vector<int>();}
};

5.四数相加
时间有点点超了  下面是改进的

class Solution
{
public:int fourSumCount(vector<int> &nums1, vector<int> &nums2, vector<int> &nums3, vector<int> &nums4){unordered_map<int,int> mymap;int count=0;for (int i = 0; i < nums1.size(); i++){for (int j = 0; j < nums2.size(); j++){if (mymap.count(nums1[i] + nums2[j]) == 0){mymap[nums1[i] + nums2[j]] =1;}else{auto temp = mymap.find(nums1[i] + nums2[j]);temp->second++;}}}for (int i = 0; i < nums3.size(); i++){for (int j = 0; j < nums4.size(); j++){auto temp=mymap.find(-(nums3[i] + nums4[j]));if (temp!=mymap.end()){count+=temp->second;}}}return count;}
};

6、赎金信

class Solution
{
public:bool canConstruct(string ransomNote,string magazine){int temp[26];for (int i = 0; i < 26; i++){temp[i]=0;}for (int i = 0; i < magazine.size(); i++){temp[magazine[i]-'a']++;}for (int i = 0; i < ransomNote.size(); i++){temp[ransomNote[i]-'a']--;}for (int i = 0; i < 26; i++){if (temp[i]<0){return false;}}return true;        }
};

7.三数之和  不会

class Solution
{
public:vector<vector<int>> threeSum(vector<int> &nums){vector<vector<int>> result;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size(); i++){if (nums[i] > 0){return result;}if (i > 0 && nums[i] == nums[i - 1]){/* code */continue;}int left = i + 1;int right = nums.size() - 1;while (right > left){if (nums[i] + nums[left] + nums[right] > 0)right--;else if (nums[i] + nums[left] + nums[right] < 0)left++;else{result.push_back(vector<int>{nums[i], nums[left], nums[right]});while ((right > left && nums[right] == nums[right - 1]))right--;while ((right > left && nums[left] == nums[left + 1]))left++;right--;left++;}}}return result;}
};

8.四数之和  抄的 基础是三数 先确定前两个之和

class Solution
{
public:vector<vector<int>> fourSum(vector<int> &nums, int target){vector<vector<int>> result;sort(nums.begin(), nums.end());for (int k = 0; k < nums.size(); k++){// 初步剪枝if (nums[k] > target && nums[k] >= 0){break;}// 对首元素去重if (k > 0 && nums[k] == nums[k - 1]){/* code */continue;}for (int i = k + 1; i < nums.size(); i++){// 二级剪枝if (nums[k] + nums[i]>target && nums[k] + nums[i]>=0){break;}//对nums[i]去重if (i > k+1 && nums[i] == nums[i - 1]){/* code */continue;}int left = i + 1;int right = nums.size() - 1;while (right > left){if ((long)nums[k]+nums[i] + nums[left] + nums[right] > target)right--;else if ((long)nums[k]+nums[i] + nums[left] + nums[right] < target)left++;else{result.push_back(vector<int>{nums[k],nums[i], nums[left], nums[right]});while ((right > left && nums[right] == nums[right - 1]))right--;while ((right > left && nums[left] == nums[left + 1]))left++;right--;left++;}}}}return result;}
};

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

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

相关文章

电商+支付双系统项目------项目部署到服务器

我已经把这个项目的所有模块都做好了。那么&#xff0c;现在我们要做的就是将这个项目部署发布了。其实关于部署发布网上有很多的文章都会教&#xff0c;我就不写哪些很具体的步骤了&#xff0c;我就简单的总结一下怎么部署这个项目&#xff0c;让大家对项目部署有一个整体的认…

【Linux】Ubuntu内存管理

简单介绍下Ubuntu中关于内存的相关操作。起因是当服务器运行久了之后&#xff0c;感觉内存、缓存、swap分区有很多垃圾&#xff0c;影响运行。 1.sync命令 sync&#xff1a;这个命令会将系统缓存的数据写入磁盘&#xff0c;从而释放内存 2.free 查看当前内存使用情况 free …

kubernetes的网络flannel与caclio

flannel网络 跨主机通信的一个解决方案是Flannel&#xff0c;由CoreOS推出&#xff0c;支持3种实现&#xff1a;UDP、VXLAN、host-gw udp模式&#xff1a;使用设备flannel.0进行封包解包&#xff0c;不是内核原生支持&#xff0c;上下文切换较大&#xff0c;性能非常差 vxlan模…

瑞_23种设计模式_装饰者模式

文章目录 1 装饰者模式&#xff08;Decorator Pattern&#xff09;1.1 介绍1.2 概述1.3 装饰者模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析5 总结5.1 装饰者模式的优缺点5.2 装饰者模式的使用场景5.3 装饰者模式 VS 代理模式 &#x…

dpdk环境搭建和工作原理

文章目录 1、DPDK环境搭建1.1、环境搭建1.2、编译DPDK 2、DPDK工作原理 1、DPDK环境搭建 1.1、环境搭建 工具准备&#xff1a;VMware、ubuntu16.04。 &#xff08;1&#xff09;VMware添加两个网卡。桥接网卡作为 DPDK 运行的网卡&#xff0c;NAT 网卡作为 ssh 连接的网卡。 …

【动态规划】【前缀和】【推荐】2463. 最小移动总距离

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 本文涉及知识点 动态规划汇总 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 2463. 最小移动总距离 X 轴上有一些机器人和工厂。给你一个整数数组 robot &#xff0c…

【统计分析数学模型】判别分析(四):机器学习分类算法

【统计分析数学模型】判别分析&#xff08;四&#xff09;&#xff1a;机器学习分类算法 一、机器学习分类算法1. 交叉验证方法2. 案例数据集3. 数据标准化 二、决策树模型1. 基本原理2. 计算步骤3. R语言实现 三、K最邻近分类1. 基本原理2. K值的选择3. R语言实现 四、支持向量…

c++的指针完整教程

概述&#xff1a;C的指针是一种特殊的变量&#xff0c;它存储的是另一个变量的内存地址。指针的使用可以让我们更高效地操作内存&#xff0c;实现动态内存分配等功能。 声明指针变量 要声明一个指针变量&#xff0c;需要在变量类型前加上星号&#xff08;*&#xff09;。例如…

5分钟JavaScript快速入门

目录 一.JavaScript基础语法 二.JavaScript的引入方式 三.JavaScript中的数组 四.BOM对象集合 五.DOM对象集合 六.事件监听 使用addEventListener()方法添加事件监听器 使用onX属性直接指定事件处理函数 使用removeEventListener()方法移除事件监听器 一.JavaScript基础…

投屏软件Airserver优惠码来了,使用能减10元(有图有真相)

Airserver是一款非常实用的手机投屏到电脑软件。AirServer for Mac是一款能够通过本地网络将音频、照片、视频以及支持AIrPlay功能的第三方App&#xff0c;从 iOS 设备无线传送到 Mac 电脑的屏幕上&#xff0c;把Mac变成一个AirPlay终端的实用工具。 Airserver中文官网地址&…

【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)

文章目录 七、回溯算法八、贪心算法九、动态规划9.1 背包问题9.2 01背包9.3 完全背包9.4 多重背包 十、图论10.1 深度优先搜索10.2 广度优先搜索10.3 并查集 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础…

【C++】类和对象---友元,内部类,匿名对象详解

目录 友元 友元函数 友元类 内部类 匿名对象 ⭐友元 友元提供了一种突破封装的方式&#xff0c;有时提供了便利。但是友元会增加耦合度&#xff0c;破坏了封装&#xff0c;所以 友元不宜多用。 友元分为&#xff1a;友元函数和友元类。 ⚡友元函数 先看一个问题&#x…

使用 yarn 的时候,遇到 Error [ERR_REQUIRE_ESM]: require() of ES Module 怎么解决?

晚上回到家&#xff0c;我打开自己的项目&#xff0c;执行&#xff1a; cd HexoPress git pull --rebase yarn install yarn dev拉取在公司 push 的代码&#xff0c;然后更新依赖&#xff0c;最后开始今晚的开发时候&#xff0c;意外发生了&#xff0c;竟然报错了&#xff0c;…

Python流程控制有知道的吗?

流程控制是编程的核心概念之一&#xff0c;Python也不例外。在Python中&#xff0c;程序的流程控制结构主要包括顺序结构、选择结构和循环结构。这些结构让程序员能够更好地组织代码&#xff0c;使其按照特定的逻辑执行。 1.顺序结构 顺序结构是Python中最简单的流程控制结构&…

Android相机调用-libusbCamera【外接摄像头】【USB摄像头】 【多摄像头预览】

有的自定义系统&#xff0c;对于自己外接的USB摄像头&#xff0c;android原生的camera和camera2都无法打开&#xff0c;CameraX也用不了。这时候就要用libusbCamera&#xff0c;这个库可以打开摄像头&#xff0c;还可以多摄像头同时预览。本文主要是同时打开3个USB摄像头的项目…

python读取配置文件scp文件或文件夹

config.json 文件 {"common_params": {"deploy_location": "/data","source_file": "/home/test/aitest"},"devices": [{"name": "Device1","ip_address": "172.28.9.50&quo…

Spring Boot应用集成Actuator组件以后怎么自定义端点暴露信息

一、 前言 在平时业务开发中&#xff0c;我们往往会在spring Boot项目中集成Actuator组件进行系统监控&#xff0c;虽然Actuator组件暴露的端点信息已经足够丰富了&#xff0c;但是特殊场景下&#xff0c;我们也需要自己暴露端点信息&#xff0c;此时应该怎么操作呢&#xff1…

爬虫知识--03

数据存mysql import requests from bs4 import BeautifulSoup import pymysql# 链接数据库pymysql conn pymysql.connect(userroot,password"JIAJIA",host127.0.0.1,databasecnblogs,port3306, ) cursor conn.cursor() cursor conn.cursor()# 爬数据 res request…

从业务应用开发者的角度优化MySQL性能

MySQL的性能优化包括操作系统和硬件优化、MySQL服务配置优化、合理的表结构设计和索引设计、查询优化等等&#xff0c;其中业务应用开发者能做的主要在表结构、索引、查询三个方面&#xff0c;以下对这三个方面的优化思路做简单介绍。内容主要参考《高性能MySQL&#xff08;第四…

如何解决Nginx启动出现闪退问题?

哈喽&#xff0c;大家好&#xff0c;我是小浪。那么大家首次在启动nginx的时候&#xff0c;绝大部分同学会出现以下情况&#xff0c;就是我们双击nginx.exe文件之后&#xff0c;屏幕闪退一下就没了&#xff0c;然后我们访问localhost:8080提示404. 那么出现这种情况其实是我们…