代码随想录算法训练营第七天
● 自己看到题目的第一想法
第454题.四数相加II
-
方法:
方法一: 暴力法 思路: -
注意:
-
代码:
class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {int res = 0;for(int i=0;i<nums1.size();i++){for(int j = 0; j<nums2.size();j++){for(int m = 0; m<nums3.size();m++ ){for(int n = 0; n<nums4.size(); n++){if(nums1[i]+nums2[j]+nums3[m]+nums4[n] == 0){res++ ;}}}}}return res;}
};
-
运行结果:

-
方法:
方法二: 哈希 思路:1. 定义unprdered_map<int, int>map; //key指两数之和, value指两数之和出现的次数 2. 将nums1与nums2之和放入map中; 3. 求nums3与nums4之和, 4. 在map中查找 -(nums3+nums4),若能找到则输出res+=map[-(nums3+nums4)] 5. 最终返回 res; -
注意:
-
代码:
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 res= 0;for(int k = 0; k<nums3.size(); k++){for(int l = 0; l< nums4.size(); l++){if(map.find(-(nums3[k]+nums4[l])) !=map.end()){res += map[-(nums3[k]+nums4[l])];// cout<<res<<endl;}}}return res;}
};

383. 赎金信
-
方法: 哈希 思路:
1. 定义一个数组大小为26,初始值为0; 2. 遍历magazine 将每个字符放入 数组中; 3. 遍历ransomNote 在其中查找 是否有magazine 中的字符 4. 如果发现 ransomNote中存在某个英文字母 的统计次数大于 magazine 中该字母统计次数,则此时我们直接返回 false。 -
注意:
-
代码:
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {vector<int>record(26,0);for(auto& i: magazine){record[i-'a']++;}for(char i =0; i<ransomNote.size(); i++){record[ransomNote[i]-'a']--;if(record[ransomNote[i]- 'a'] < 0){return false;}}return true;}
};

15. 三数之和
去重的代码:暴力法:
class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>>res;for(int i=0;i<nums.size(); i++){for(int j=i+1; j<nums.size(); j++){for(int k=j+1; k<nums.size(); k++){if(nums[i]+nums[j]+nums[k]==0){vector<int>n ={nums[i], nums[j], nums[k]};res.push_back(n);}}}}return res;}
};

- 方法: 排序+双指针:

-
注意:
1. 找到三数之和为0,必须先对left 与right去重后 left 与right 再分别向前 与后移动2. 需要分别对 i, left, right 去重 -
代码:
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(i>0 && nums[i]==nums[i-1]){continue;}// if (nums[i] > 0) {// return res;// }int left= i+1;int right =nums.size()-1;while(left<right){if(nums[left]+nums[right]+nums[i]<0){left++;}else if(nums[left]+nums[right]+nums[i]>0){right--;}else{res.push_back(vector<int>{nums[i], nums[left], nums[right]});// left++;// right--;while(left<right && nums[left]== nums[left+1]){left++;}while(left<right && nums[right] == nums[right-1]){right--;}left++;right--;}}}return res;}
};

18. 四数之和
-
方法: 排序+双指针:
-
注意: 一定要加(long),否则会溢出
-
代码:
class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>>res;sort(nums.begin(), nums.end());for(int i=0;i<nums.size(); i++){if(nums[i]>target && nums[i]>=0){break;} //一级剪枝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[left]+nums[right]+nums[i]+nums[j]<target){left++;}else if((long)nums[left]+nums[right]+nums[i]+nums[j]>target){right--;}else{res.push_back(vector<int>{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 res;}
};

没有加(long)的结果

相关文章:
代码随想录算法训练营第七天
● 自己看到题目的第一想法 第454题.四数相加II 方法: 方法一: 暴力法 思路: 注意: 代码: class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<i…...
文件操作和IO(2):Java中操作文件
目录 一、File的属性 二、File的构造方法 三、File的方法 四、代码示例 1、getName,getParent,getPath方法 2、getAbsolutePath,getCanonicalPath方法 3、exists,isDirectory,createNewFile方法 4、createNewF…...
人工智能-零基础
机缘 扩充下知识栈,准备零基础开始 人工智能零基础 日常 日常水一下博客… 憧憬 努力成为一个会人工智能的程序员...
网络爬虫部分应掌握的重要知识点
目录 一、预备知识1、Web基本工作原理2、网络爬虫的Robots协议 二、爬取网页1、请求服务器并获取网页2、查看服务器端响应的状态码3、输出网页内容 三、使用BeautifulSoup定位网页元素1、首先需要导入BeautifulSoup库2、使用find/find_all函数查找所需的标签元素 四、获取元素的…...
git命令笔记
文章目录 0、参考文档1、常用指令git checkout系列git pull系列git push系列git reset系列git branch系列git log系列git revert 撤销某次提交git diff其他 2、查看和修改用户名和邮箱,生成密钥other 0、参考文档 Git使用教程:最详细、最傻瓜、最浅显、…...
微服务day03-Nacos配置管理与Nacos集群搭建
一.Nacos配置管理 Nacos不仅可以作为注册中心,可以进行配置管理 1.1 统一配置管理 统一配置管理可以实现配置的热更新(即不用重启当服务发生变更时也可以直接更新) dataId格式:服务名-环境名.yaml,分组一般使用默认…...
DFS剪枝
剪枝 将搜索过程中一些不必要的部分剔除掉,因为搜索过程构成了一棵树,剔除不必要的部分,就像是在树上将树枝剪掉,故名剪枝。 剪枝是回溯法中的一种重要优化手段,方法往往先写一个暴力搜索,然后找到某些特…...
基于SpringBoot多模块项目引入其他模块时@Autowired无法注入
基于SpringBoot多模块项目引入其他模块时Autowired无法注入 一、问题描述1、解决方案 一、问题描述 启动Spring Boot项目时报 Could not autowire. No beans of ‘xxxxxxxx’ type found. 没有找到bean的实例,即spring没有实例化对象,也就无法根据配置文…...
每日一题——LeetCode1566.重复至少K次且长度为M的模式
方法一 暴力枚举 var containsPattern function(arr, m, k) {const n arr.length;for (let l 0; l < n - m * k; l) {let offset;for (offset 0; offset < m * k; offset) {if (arr[l offset] ! arr[l offset % m]) {break;}}if (offset m * k) {return true;}}r…...
代码随想录刷题笔记-Day27
1. 全排列 46. 全排列https://leetcode.cn/problems/permutations/ 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],…...
【小沐学GIS】QGIS安装和入门使用
文章目录 1、简介2、下载和安装3、使用3.1 XYZ Tiles3.2 WMS / WMTS3.3 GeoJson文件加载 4、在线资源结语 1、简介 QGIS是一款开源地理信息系统。该项目于2002年5月诞生,同年6月作为SourceForge上的一个项目建立。QGIS目前运行在大多数Unix平台、Windows和macOS上。…...
黑马程序员——接口测试——day03——Postman断言、关联、参数化
目录: Potman断言 Postman断言简介Postman常用断言 断言响应状态码断言包含某字符串断言JSON数据Postman断言工作原理Postman关联 简介实现步骤核心代码创建环境案例1案例2Postman参数化 简介数据文件简介编写数据文件 CSV文件JSON文件导入数据文件到postman读取数…...
Unreal触屏和鼠标控制旋转冲突问题
Unreal触屏和鼠标控制旋转冲突问题 鼠标控制摄像机旋转添加Input轴计算旋转角度通过轴事件控制旋转 问题和原因问题原因 解决办法增加触摸控制旋转代码触屏操作下屏蔽鼠标轴响应事件 鼠标控制摄像机旋转 通过Mouse X和Mouse Y控制摄像机旋转。 添加Input轴 计算旋转角度 通过…...
Vins-Moon配准运行
Vins-Moon运行 求助!!!源码地址电脑配置环境配置编译Kitti数据集制作IMU时间戳问题 适配Kitti数据集运行结果Euroc数据集kitti数据集 evo评估(KITTI数据)输出轨迹(tum格式)结果 求助!!ÿ…...
MSCKF3讲:后端理论推导(上)
MSCKF3讲:后端理论推导(上) 文章目录 MSCKF3讲:后端理论推导(上)1 MSCKF中的状态变量① IMU状态:② cam0状态:③ IMU和cam0间状态关系 2 微分方程递推(数值解)3 IMU状态预…...
群控代理IP搭建教程:打造一流的网络爬虫
目录 前言 一、什么是群控代理IP? 二、搭建群控代理IP的步骤 1. 获取代理IP资源 2. 配置代理IP池 3. 选择代理IP策略 4. 编写代理IP设置代码 5. 异常处理 三、总结 前言 群控代理IP是一种常用于网络爬虫的技术,通过使用多个代理IP实现并发请求…...
【IO流系列】字符流练习(拷贝、文件加密、修改文件数据)
字符流练习 练习1:文件夹拷贝1.1 需求1.2 代码实现1.3 输出结果 练习2:文件加密与解密2.1 需求2.2 代码实现2.3 输出结果 练习3:修改文件数据(常规方法)3.1 需求3.2 代码实现3.3 输出结果 练习4:修改文件数…...
华为云磁盘挂载
华为云磁盘挂载 磁盘挂载情况 fdisk -l 2. 查看当前分区情况 df -h 3.给新硬盘添加新分区 fdisk /dev/vdb 4.分区完成,查询所有设备的文件系统类型 blkid 发现新分区并没有文件系统类型(type为文件系统具体类型,有ext3,ext4,xfs,iso9660等…...
通过大语言模型理解运维故障:评估和总结
张圣林 南开大学软件学院副教授、博士生导师 第六届CCF国际AIOps挑战赛程序委员会主席 在ATC、WWW、VLDB、KDD、SIGMETRICS等国际会议和JSAC、TC、TSC等国际期刊发表高水平论文50余篇。主持国家自然科学基金项目2项,横向项目13项(与华为、字节跳动、腾讯…...
SVN教程-SVN的基本使用
SVN(Apache Subversion)是一款强大的集中式版本控制系统,它在软件开发项目中扮演着至关重要的角色,用于有效地跟踪、记录和管理代码的演变过程。与分布式系统相比,SVN 的集中式架构使得团队能够更加协同地进行开发&…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
