当前位置: 首页 > news >正文

二刷代码随想录第七天

454. 四数相加 II

  • 先用map记录前两个数的和num1 + num2的值出现了多少次
  • 再在后两个数组里找0 - (num1 + num2),找到后就累加map中的次数
class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3,vector<int>& nums4) {unordered_map<int, int> map;for (int num1 : nums1) {for (int num2 : nums2) {map[num1 + num2]++;}}int count = 0;for (int num3 : nums3) {for (int num4 : nums4) {int need = 0 - (num3 + num4);if (map.find(need) != map.end()) {//!!!!!!!!!这里是加上map[need]的次数,不是++count+=map[need];}}}return count;}
};

383. 赎金信

  • 和242. 有效的字母异位词一样
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {vector<int> arr(26, 0);for (int i = 0; i < ransomNote.size(); i++) {arr[ransomNote[i] - 'a']++;}for (int i = 0; i < magazine.size(); i++) {arr[magazine[i] - 'a']--;}for (int n : arr) {if (n > 0) {return false;}}return true;}
};

15. 三数之和

  • 首先对数组排序
  • 定义三个指针,一个i从0开始遍历数组,一个left在i右边一位,一个right在数组末尾
  • 确定i,不断移动leftright,同时要注意剪枝
  • nums[i] > 0,第一个都大于0了,那后面不管怎样也不可能等于0
  • i > 0 && nums[i] == nums[i - 1],重复元素就跳过,要找前一个元素,才是用过的元素
  • 找到三元数组收缩leftright时,也需要去重,用while去找,找到第一个不相等的元素
class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> ans;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size(); i++) {if (nums[i] > 0) {return ans;}if (i > 0 && nums[i] == nums[i - 1]) {continue;}int left = i + 1;int right = nums.size() - 1;while (left < right) {if (nums[i] + nums[left] + nums[right] > 0) {right--;} else if (nums[i] + nums[left] + nums[right] < 0) {left++;} else {ans.push_back({nums[left], nums[right], nums[i]});while (left < right && nums[left] == nums[left + 1]) {left++;}while (left < right && nums[right] == nums[right - 1]) {right--;}left++;right--;}}}return ans;}
};

18. 四数之和

  • 同上
  • 注意是和target做比较了
  • 数据太大需要加一个(long)
class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> ans;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size(); i++) {if (nums[i] >= 0 && nums[i] > target) {return ans;}if (i > 0 && nums[i] == nums[i - 1]) {continue;}for (int j = i + 1; j < nums.size(); j++) {if (nums[i] + nums[j] > target && nums[i] + nums[j] >= 0) {break;}if (j > i + 1 && nums[j] == nums[j - 1]) {continue;}int left = j + 1;int right = nums.size() - 1;while (left < right) {if ((long)nums[i] + nums[j] + nums[left] + nums[right] >target) {right--;} else if ((long)nums[i] + nums[j] + nums[left] +nums[right] <target) {left++;} else {ans.push_back({nums[i], nums[j], nums[left], nums[right]});while (left < right && nums[left] == nums[left + 1]) {left++;}while (left < right && nums[right] == nums[right - 1]) {right--;}left++;right--;}}}}return ans;}
};

相关文章:

二刷代码随想录第七天

454. 四数相加 II 先用map记录前两个数的和num1 num2的值出现了多少次再在后两个数组里找0 - (num1 num2),找到后就累加map中的次数 class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3…...

1.tree of thought (使用LangChain解决4x4数独问题)

本教程将介绍如何使用LangChain库和chatglm API来解决一个4x4的数独问题。我们将通过以下步骤实现这一目标&#xff1a; 初始化chatglm 的聊天模型。定义数独问题和解决方案。创建一个自定义的检查器来验证每一步的思考。使用ToTChain来运行整个思考过程。 1. 初始化chatglm4…...

网络基础(4)IP协议

经过之前的学习对传输协议的学习&#xff0c;对于传输协议从系统底层到应用层对于socket套接字的学习已经有了一套完整的理论。 对于网络的层状结构&#xff0c;现在已经学习到了应用层和传输层: 在之前的学习中&#xff0c;通信的双方都只考虑了双方的传输层的东西&#xff0…...

124. 二叉树中的最大路径和【 力扣(LeetCode) 】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 124. 二叉树中的最大路径和 一、题目描述 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径…...

echarts:简单实现默认显示两柱子折线,点击按钮后显示新的柱子

问&#xff1a; 用echarts实现&#xff1a;默认显示两柱子折线&#xff0c;点击“税率”按钮&#xff0c;显示税率柱子&#xff0c;之前的两柱子折线消失 回答&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8…...

视频里的音频怎么提取出来成单独文件?音频提取照着这些方法做

在数字时代&#xff0c;视频与音频的分离与重组已成为日常需求之一。无论是出于制作背景音乐、保存讲座内容&#xff0c;还是编辑播客素材&#xff0c;提取视频中的音频并将其保存为单独文件都显得尤为重要。视频里的音频怎么提取出来成单独文件&#xff1f;本文将详细介绍几种…...

Excel——宏教程(精简版)

一、宏的简介 1、什么是宏&#xff1f; Excel宏是一种自动化工具&#xff0c;它允许用户录制一系列操作并将其转换为VBA(Visual Basic for Applications)代码。这样&#xff0c;用户可以在需要时执行这些操作&#xff0c;以自动化Excel任务。 2、宏的优点 我们可以利用宏来…...

C++中的std::tuple和std::pair

在C标准库中&#xff0c;std::tuple和std::pair是两种极具实用性的数据结构&#xff0c;它们都具备存储多个元素的功能&#xff0c;但各自有其独特的适用环境和特性。本文旨在深入探讨这两者之间的区别&#xff0c;并阐述在不同应用场景下应如何合理选择使用。 一、基本概念 s…...

引力搜索算法

引力搜索算法过程&#xff0c;包括了初始化、适应度评估、质量计算、加速度计算、更新速度和位置的一些步骤。 import numpy as np import random as rd from math import exp, sqrt import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotli…...

【时间之外】IT人求职和创业应知【35】-RTE三进宫

目录 新闻一&#xff1a;京东工业发布11.11战报&#xff0c;多项倍增数据体现工业经济信心提升 新闻二&#xff1a;阿里云100万核算力支撑天猫双11&#xff0c;弹性计算规模刷新纪录 新闻三&#xff1a;声网CEO赵斌&#xff1a;RTE将成为生成式AI时代AI Infra的关键部分 认知…...

Linux的目录结构

/ ├── bin # Binary - 存放用户可以直接使用的基本二进制可执行文件 ├── sbin # System Binaries - 存放系统管理员专用的二进制可执行文件 ├── usr # Unix System Resources - 存放用户使用的软件和库文件 │ ├── bin # Binary - 用户级应用程序…...

python: generator IDAL and DAL using sql server 2019

其它数据库也是一样的思维方式 create IDAL # encoding: utf-8 # 版权所有 2024 ©涂聚文有限公司 # 许可信息查看&#xff1a;言語成了邀功盡責的功臣&#xff0c;還需要行爲每日來值班嗎 # 描述&#xff1a; # Author : geovindu,Geovin Du 涂聚文. # IDE : P…...

命令执行简单

前言&#xff1a;小迪安全2022第一节反弹shell&#xff0c;小迪用的是两台都是云服务器&#xff0c;没有服务器可以在自己的主机上搭建也是可以的&#xff0c;主机上搭两个网站 思路&#xff1a;生成一个木马文件&#xff0c;下载到本机&#xff0c;然后利用本机上传到目标主机…...

【一句话经验】亚马逊云EC2 ubuntu24.04.1开启ROOT登录Permission denied (publickey)

按照常规的方法SSH登录会一直报错&#xff1a; Permission denied (publickey) 因为亚马逊云的默认配置不是在/etc/ssh/sshd_config&#xff0c;而是在引入的文件里了&#xff0c;所以在instance控制台输入这行命令来解除登录限制&#xff1a; sudo sed -i s/^PasswordAuthe…...

百度智能云千帆大模型平台引领企业创新增长

本文整理自百度世界大会 2024——「智能跃迁 产业加速」论坛的同名演讲。 更多大会演讲内容&#xff0c;请访问&#xff1a; https://baiduworld.baidu.com 首先&#xff0c;跟大家分享一张图&#xff0c;这个是我们目前大模型应用落地的场景分布。可以看到&#xff0c;大模型…...

【Linux】深入理解GCC/G++编译流程及库文件管理

目录 1.背景知识 2.gcc/g如何完成编译 (1) 预处理&#xff08;进行宏替换&#xff09; (2) 编译&#xff08;生成汇编&#xff09; (3) 汇编&#xff08;生成机器可识别代码&#xff09; (4) 链接&#xff08;生成可执行文件或库文件&#xff09; (5) 总结 (6) 函数库 …...

【Unity基础】对比Unity中两种粒子系统

在Unity中&#xff0c;Particle System和Visual Effect Graph (VFX) 都是用于创建粒子效果的工具&#xff0c;但它们的设计目标、使用场景和功能特点有所不同。以下是详细对比&#xff1a; 1. Particle System 特点 传统粒子系统&#xff0c;Unity自带的模块化粒子特效工具。…...

琐碎笔记——pytest实现前置、后置、参数化、跳过用例执行以及重试

pytest的fixture中文介绍可参考&#xff08;不过文档稍微有点老&#xff09;&#xff1a; https://www.osgeo.cn/pytest/fixture.html#what-fixtures-are pytest各个作用域的fixture scope “function” 可作用于每个用例 fixture使用的声明放在类定义前面&#xff0c;类中的…...

C# 深层副本与浅层副本 深拷贝与浅拷贝

C# 深层副本与浅层副本 数据复制是编程中的重要任务。 对象是 OOP 中的复合数据类型。 对象中的成员字段可以按值或按引用存储。 可以以两种方式执行复制。 浅表副本将所有值和引用复制到新实例中。 引用所指向的数据不会被复制&#xff1b; 仅指针被复制。 新的引用指向原始…...

CH06_Lambda表达式

第6章&#xff1a;Lambda表达式 本章目标 为什么要学习C#编程语言 了解C#相关常识 C#开发工具Visual Studio安装 掌握C#程序的开发步骤 掌握C#的注释 掌握C#的常用转义符 本章内容 lambda表达式演变史 C# 匿名函数的演变历史可以追溯到 C# 语言的不同版本&#xff0c;…...

Keil5实战:手把手教你制作自定义FLM插件(附完整驱动配置)

Keil5实战&#xff1a;手把手教你制作自定义FLM插件&#xff08;附完整驱动配置&#xff09; 在嵌入式开发领域&#xff0c;Flash编程算法&#xff08;FLM&#xff09;是连接开发环境与目标芯片闪存的重要桥梁。当我们需要支持非标准闪存芯片或特殊外设接口时&#xff0c;自定义…...

sklearn分类指标实战:如何用precision_recall_curve优化你的模型效果

sklearn分类指标实战&#xff1a;如何用precision_recall_curve优化模型效果 在机器学习项目中&#xff0c;分类模型的评估往往比训练过程更考验数据科学家的专业素养。当你的模型在测试集上达到95%的准确率时&#xff0c;是否就意味着可以高枕无忧&#xff1f;现实情况往往复杂…...

hgproxy偶发性无法连接

文章目录环境症状问题原因解决方案环境 系统平台&#xff1a;银河麒麟 &#xff08;鲲鹏&#xff09; 版本&#xff1a;4.5.8 症状 hgproxy 4.0.33.3 出现偶发性无法连接现象&#xff0c;经过几分钟或几十秒或更长时间会自动恢复正常&#xff1b;psql 连接数据库端口正常&am…...

实测对比:openEuler三大桌面环境UKUI/DDE/XFCE安装体验与性能消耗

实测对比&#xff1a;openEuler三大桌面环境UKUI/DDE/XFCE安装体验与性能消耗 当技术决策者面对openEuler操作系统时&#xff0c;桌面环境的选择往往成为影响工作效率的关键因素。本文将基于openEuler 24.03 LTS环境&#xff0c;深度实测UKUI、DDE和XFCE三大主流桌面环境&…...

超越单线程:探索MATLAB并行计算与进程间通信的实践路径

1. MATLAB并行计算的本质与局限 很多人第一次接触MATLAB时&#xff0c;都会惊讶于它的单线程特性——当你运行一个耗时计算时&#xff0c;整个界面都会卡住&#xff0c;连命令行都无法输入。这其实源于MATLAB最初的设计哲学&#xff1a;保持简单一致的执行环境。但现代计算任务…...

CF1335E2 Three Blocks Palindrome (hard version)

本题解也可通过CF1335E1 Three Blocks Palindrome (easy version)。做法&#xff1a;值域很小。只有200&#xff0c;考虑从这里入手。我们设q[i][j]表示数i第j次出现的位置&#xff0c;sum[i][j]表示种类i在1到j范围内出现过多少次。枚举 a,b 具体的值&#xff0c;枚举 x&#…...

TimelineJS终极指南:轻松创建零食文化演变史时间轴

TimelineJS终极指南&#xff1a;轻松创建零食文化演变史时间轴 【免费下载链接】TimelineJS 项目地址: https://gitcode.com/gh_mirrors/tim/TimelineJS TimelineJS是一款功能强大且简单易用的开源时间轴创建工具&#xff0c;即使是新手也能快速上手&#xff0c;轻松制…...

KindEditor富文本编辑器:轻量级网页内容创作解决方案

KindEditor富文本编辑器&#xff1a;轻量级网页内容创作解决方案 【免费下载链接】kindeditor WYSIWYG HTML editor 项目地址: https://gitcode.com/gh_mirrors/ki/kindeditor 在当今Web开发中&#xff0c;内容编辑功能是许多网站的核心需求&#xff0c;但开发者常常面临…...

黑马点评毕业设计效率提升实战:从单体到高并发架构的演进路径

最近在帮学弟学妹们review“黑马点评”这个经典的毕业设计项目时&#xff0c;发现一个普遍现象&#xff1a;大家都能把功能跑起来&#xff0c;但一提到性能优化、高并发&#xff0c;就有点无从下手。很多同学直接沿用课程里的单体架构模板&#xff0c;结果在模拟答辩或者自己压…...

LeaguePrank:5分钟学会英雄联盟个性化美化工具终极指南 [特殊字符]

LeaguePrank&#xff1a;5分钟学会英雄联盟个性化美化工具终极指南 &#x1f3ae; 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 想要在英雄联盟中展示与众不同的个人形象吗&#xff1f;LeaguePrank 正是你需要的个性化美化工…...