【代码随想录算法训练营第37期 第七天 | LeetCode454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和】

代码随想录算法训练营第37期 第七天 | LeetCode454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和


一、454.四数相加II

解题代码C++:

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

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0454.%E5%9B%9B%E6%95%B0%E7%9B%B8%E5%8A%A0II.html



二、383. 赎金信

解题代码C++:

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {for(int i = 0; magazine[i]; i ++)for(int j = 0; ransomNote[j]; j ++){if(magazine[i] == ransomNote[j])ransomNote.erase(ransomNote.begin() + j);}if(ransomNote.size() == 0) return true;else return false;}
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0383.%E8%B5%8E%E9%87%91%E4%BF%A1.html



三、15. 三数之和

解题代码C++:

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> res;sort(nums.begin(), nums.end());for(int i = 0; i < nums.size(); i ++){if(nums[i] > 0) break;if(i > 0 && nums[i] == nums[i - 1]) continue;unordered_set<int> set;for(int j = i + 1; j < nums.size(); j ++){if(j > i + 2 && nums[j] == nums[j - 1] && nums[j - 1] == nums[j - 2]) continue;int c = 0 - (nums[i] + nums[j]);if(set.find(c) != set.end()){res.push_back({nums[i], nums[j], c});set.erase(c);}else set.insert(nums[j]);}}return res;}
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0015.%E4%B8%89%E6%95%B0%E4%B9%8B%E5%92%8C.html



四、18. 四数之和

解题代码C++:

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]) continue;for (int i = k + 1; i < nums.size(); i ++) {if (nums[k] + nums[i] > target && nums[k] + nums[i] >= 0) break;if (i > k + 1 && nums[i] == nums[i - 1]) 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;}
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0018.%E5%9B%9B%E6%95%B0%E4%B9%8B%E5%92%8C.html

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

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

相关文章

ssl证书申请配置要怎么弄?

SSL证书是一种公钥证书&#xff0c;用于保护网站的数据传输过程&#xff0c;确保网站数据的安全性。在网站上使用SSL证书可以有效地防止黑客攻击、窃取用户信息等安全问题。下面将详细介绍SSL证书的申请和配置。 一、SSL证书的申请 1. 选择证书品牌和类型 目前市场上有很多S…

手撸XXL-JOB(四)——远程调用定时任务

Java Socket网络编程 网络编程是Java编程中的重要组成部分&#xff0c;包括服务端和客户端两部分内容。Socket是Java网络编程的基本组件之一&#xff0c;用于在应用程序之间提供双向通信&#xff0c;Socket提供了一种标准的接口&#xff0c;允许应用程序通过网络发送和接收数据…

【递归、回溯和剪枝】综合训练<二>

1.组合总和 组合总和 解法一&#xff1a; class Solution { public:vector<vector<int>> ret;vector<int> path;int aim;vector<vector<int>> combinationSum(vector<int>& nums, int target) {aim target;dfs(nums, 0, 0);return …

华为交换机SSH配置示例

华为交换机支持的SSH和ACL具有关键的安全和配置要求&#xff0c;以确保网络交互的安全性和高效管理。 一、SSH在华为交换机中的原理和配置 SSH技术原理&#xff1a; SSH&#xff08;Secure Shell&#xff09;是一种加密的网络协议&#xff0c;用于在不安全的网络上安全地进行…

【C++】08.string类模拟实现

这篇博客我们来按【C】07.string详解-CSDN博客来模拟实现string类。 目录 一、成员变量 二、构造函数、赋值运算符重载与析构函数 2.1 构造函数 2.2 赋值运算符重载 2.3 析构函数 三、迭代器 3.1 begin() 3.2 end() 四、对容器的操作 4.1 计算字符串的长度与容量 …

LMDI模型详解:环境和能源经济学中的重要工具

引言 在全球面临能源危机和环境挑战的当下&#xff0c;理解和分析能源消耗与碳排放的驱动因素变得尤为重要。LMDI&#xff08;Logarithmic Mean Divisia Index&#xff09;模型作为一种高效的分析工具&#xff0c;在环境和能源经济学中被广泛应用&#xff0c;以评估和解构这些…

ar景区智慧导览系统小程序开发源码搭建

要开发一个AR景区智慧导览系统小程序源码&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 确定需求和功能&#xff1a;首先&#xff0c;你需要明确你的AR景区智慧导览系统的需求和功能&#xff0c;例如定位、导航、语音导览、虚拟交互、地图展示等。 2. 选择开发平台和…

BOM部分

一&#xff0c;概述 二&#xff0c;Windows对象常见的事件 1.窗口加载事件 上面那个是会等页面都加载完了&#xff0c;在进行函数的调用或者触发事件&#xff0c;如&#xff08;图像&#xff0c;文本&#xff0c;css&#xff0c;js等&#xff09;&#xff0c;所以那个声明可以…

景源畅信数字:抖音热门赛道有哪些?

抖音&#xff0c;作为当下流行的短视频平台&#xff0c;吸引了无数用户和创作者。热门赛道&#xff0c;即平台上受关注度高、活跃用户多的内容领域&#xff0c;是许多内容创作者关注的焦点。这些赛道不仅反映了用户的兴趣偏好&#xff0c;也指引着创作的方向。 一、美食制作与分…

c++构造函数与析构函数

构造函数与析构函数 构造函数 构造函数与类名相同没有返回值&#xff0c;不写void可以重载当创建对象的时候编译器自动调用默认构造函数没有写构造函数的时候编译器会提供一个无参构造 构造函数三种调用方式 括号法 A a(2)显示法A a2;隐式转换法,用explicit可以避免隐式转换…

docker 部署 prometheus + Grafana +

# prometheus安装 # 1.拉镜像 docker pull prom/prometheus:v2.43.0 # 2.创建配置文件 mkdir /opt/prometheus/data cd /opt/prometheus/ vi prometheus.yml # 3.使用root用户启动 docker run --name prometheus -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/pro…

企业必看:镭速教你如何测试内网文件传输效率和稳定问题

在现代商业运作中&#xff0c;企业内部文件传输的效率和稳定性对于数据管理和业务流程极为重要。无论是远程工作还是团队协作&#xff0c;高效的文件传输都能显著提升工作效率。今天镭速小编就教你如何测试内网文件传输效率和稳定问题。 1、磁盘性能&#xff0c;即硬盘的读取和…

基于Spring Cloud的房产销售平台设计与实现

基于Spring Cloud的房产销售平台设计与实现 开发语言&#xff1a;Java 框架&#xff1a;SpringCloud JDK版本&#xff1a;JDK1.8 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 前台首页界面&#xff0c;前台首页包括房源信息、…

Airtest核心API汇总

2024.2.25更新&#xff1a;新增剪切板、Airtest1.3.3touch/swipe支持绝对坐标和相对坐标 2023.9.3更新&#xff1a;Airtest1.2.7新增14个断言、断开连接API&#xff1b;Airtest1.2.10.2新增录屏API&#xff1b; 以下基于airtest1.2.0(截止2021.7.12&#xff0c;最新版本) https…

揭秘奇葩环境问题:IDEA与Maven版本兼容性解析

1.问题描述 最近在实现通过Java爬虫获取网页源码&#xff0c;然后紧接着将源码转换为图片上传到OSS服务器&#xff0c;其中探索了很多办法&#xff0c;但是在实现过程中遇到一个奇葩问题&#xff0c;就是我无论下载任何Maven依赖&#xff0c;都无法正常下载&#xff0c;简直是…

开展高质量发展统计监测与评价的重要意义是什么

党的十九大作出我国经济已由高速增长阶段转向高质量发展阶段的重大判断&#xff0c;随后 2018 年中央经济工作会议提出要加快形成推动高质量发展的指标体系、政策体系、标准体系、统计体系、绩效评价、政绩考核。这是经济发展一般规律与我国统计改革实践探索相结合的科学部署&a…

LeetCode1207独一无二的出现次数

题目描述 给你一个整数数组 arr&#xff0c;请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的&#xff0c;就返回 true&#xff1b;否则返回 false。 解析 正常的解法肯定是对每个元素使用一个hashmap&#xff0c;存元素及出现次数&#xff0c;然后通…

如何压缩图片大小?7个实用软件教你快速压缩图片大小

如何压缩图片大小&#xff1f;7个实用软件教你快速压缩图片大小 以下是七个实用的软件&#xff0c;可以帮助您快速压缩图片大小&#xff1a; 图片编辑助手&#xff1a;这是一款功能强大的图像处理软件&#xff0c;其中包含了图像压缩功能。您可以打开需要压缩的图片&#xf…

工业物联网解决方案:机房动环监控系统

工业物联网解决方案&#xff1a;机房动环监控系统 工业物联网&#xff08;IIoT&#xff09;作为数字化转型的关键驱动力&#xff0c;正深刻改变着各行各业的运作模式&#xff0c;其中机房动环监控系统是实现智能化运维管理的重要组成部分。该系统通过集成传感器技术、大数据分…

C++语法|可调用对象和函数对象

在本文中&#xff0c;我想先详细讲解C中的可调用对象和函数对象的定义&#xff0c;最后讲解二者的联系和区别 可调用对象 C中&#xff0c;可调用对象(Callable Object)是一个可以被调用执行的对象&#xff0c;类似于函数。任何类型的对象&#xff0c;主要的可调用对象有以下几…