算法练习第七天|454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

hash表【数组、map】以及双指针的运用

454.四数相加II

public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {//nums1,nums2的和作为key,出现次数记位valueMap<Integer,Integer> map = new HashMap<Integer,Integer>();for(int a : nums1){for(int b: nums2){int sum = a+b;map.put(sum,map.getOrDefault(sum,0)+1);}}int sum = 0;for(int a : nums3){for(int b: nums4){sum += map.getOrDefault(0-a-b,0);}}return sum;}
  1. 赎金信
    public boolean canConstruct(String ransomNote, String magazine) {if(ransomNote.length() > magazine.length()){return false;}int[] record = new int[26];for(int i = 0; i< magazine.length(); i++){record[magazine.charAt(i) - 'a']++;}for(int i = 0; i< ransomNote.length(); i++){record[ransomNote.charAt(i) - 'a']--;}for(int ele: record){if(ele < 0) return false;}return true;}
  1. 三数之和
public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);for(int i=0; i< nums.length; i++){if(nums[i] > 0){return res;}if(i> 0&& nums[i] == nums[i- 1]){continue;}int left = i+1;int right = nums.length-1;while(right > left){int sum = nums[i] + nums[left]+ nums[right];if(sum> 0){right--;}else if(sum < 0){left ++;}else{res.add(Arrays.asList(nums[i],nums[left],nums[right]));while(right>left&& nums[right] == nums[right-1]) right--;while(right>left&& nums[left] == nums[left+1]) left ++ ;left++;right--;}}}return res;}
  1. 四数之和
class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);for(int i=0; i< nums.length; i++){if(nums[i] > 0 && nums[i] > target){return res;}if(i> 0&& nums[i] == nums[i- 1]){continue;}for(int j=i+1; j< nums.length; j++){if(j> i+1&& nums[j] == nums[j- 1]){continue;}int left = j+1;int right = nums.length-1;while(right > left){int sum = nums[i] +nums[j] + nums[left]+ nums[right];if(sum> target){right--;}else if(sum < target){left ++;}else{res.add(Arrays.asList(nums[i],nums[j],nums[left],nums[right]));while(right>left&& nums[right] == nums[right-1]) right--;while(right>left&& nums[left] == nums[left+1]) left ++ ;left++;right--;}}}  }return res;}
}

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

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

相关文章

IT廉连看——C语言——分支语句

IT廉连看—分支语句 一、什么是语句 C语句可分为以下五类&#xff1a; 表达式语句 函数调用语句 控制语句 复合语句 空语句 本周后面介绍的是控制语句。 控制语句用于控制程序的执行流程&#xff0c;以实现程序的各种结构方式&#xff0c;它们由特定的语句定义符组成&…

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…

FPGA_SD卡读写

一 SD卡 SD卡&#xff0c;安全数字卡&#xff0c;体积小&#xff0c;容量大&#xff0c;存储速度块&#xff0c;支持热插拔。 二 SD卡存储容量 SD卡类型协议规范容量等级SDSCSD1.0上限至2GBSDHCSD2.02GB至32GBSDXCSD3.032GB至2TB 三 SD卡速度等级 标志串列数据写入速度UHS…

MWC 2024丨美格智能发布全新5G-A模组及FWA解决方案,将5.5G带入现实

2月26日&#xff0c;在MWC 2024世界移动通信大会上&#xff0c;美格智能正式宣布推出5G-A模组SRM817WE以及全新的5G-A FWA解决方案&#xff0c;包含5G-A CPE解决方案SRT858M、5G-A MiFi解决方案SRT878H和5G-A ODU解决方案SRT853MX&#xff0c;旨在进一步提升网络性能&#xff0…

跟着cherno手搓游戏引擎【25】封装2DRenderer,封装shader传参,自定义Texture

封装2DRenderer&#xff1a; Renderer.h: #include"ytpch.h" #include"Renderer.h" #include <Platform/OpenGL/OpenGLShader.h> #include"Renderer2D.h" namespace YOTO {Renderer::SceneData* Renderer::m_SceneData new Renderer::S…

python中“全局变量”之谜

全局变量&#xff0c;是不是以为着在整个程序中的值都是一样的&#xff0c;是不是都是同一个呢&#xff1f; 我们通过下面的例子来看全局"变量之变” 上面的程序运行结果如下&#xff1a; 从上面的运行结果可以看出&#xff1a;尽管变量num被声明为全局变量&#xff0c;在…

web开发技术概述

1.1web的基本概念 &#xff11;.HTTP协议 HTTP协议(HTTP&#xff0c;超文本传输协议)是一个简单的请求响应协议&#xff0c;通常运行在TCP协议之上&#xff0c;该协议基于客户端/服务器模式&#xff0c;c/s之间是一次性的连接&#xff0c;每次连接只处理一个请求&#xff0c;服…

测试基础2:接口测试入门儿 哟呼开心

单元测试&#xff1a;一段代码的功能是否正确&#xff0c;在软件开发中进行的测试活动&#xff1b; 单元测试框架&#xff1a; java&#xff1a;junit&#xff0c;testNG c#:NUint python&#xff1a;pytest、unittest接口测试&#xff1a;检测外部系统与系统之间以及内部各个子…

轻松升级!将CentOS 7内核升级到最新版本

前言&#xff1a; 想要让CentOS 7系统跑得更快、更稳定吗&#xff1f;不要错过这个教程&#xff01;这里将展示如何将旧版本的内核轻松升级到最新版本&#xff0c;通过使用ELRepo存储库提供的最新稳定版内核。 步骤 1: 更新系统并准备好&#xff1a; sudo yum -y update sudo…

腾讯云4核8g云服务器能承受多少人访问?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

MFC web文件 CHttpFile的使用初探

MFC CHttpFile的使用 两种方式&#xff0c;第一种OpenURL&#xff0c;第二种SendRequest&#xff0c;以前捣鼓过&#xff0c;今天再次整结果发现各种踩坑&#xff0c;好记性不如烂笔头&#xff0c;记录下来。 OpenURL 这种方式简单粗暴&#xff0c;用着舒服。 try {//OpenU…

eureka注册中心做了哪些事情/原理?

1.服务注册&#xff1a; 将eureka client发送过来的元数据存储到注册表中 2.服务续约&#xff1a; eureka client默认会每30秒向eureka server发送一次心跳来进行服务续约&#xff0c;通过这一行动来表示自己没有出现故障&#xff1b; 3.服务…

图形系统开发实战课程:进阶篇(上)——7.图形交互操作: 视点控制与动画

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形交互操作: 视点控制与动画”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-7.html 第七章 图形交互操作: 视点控制与…

[云原生] 二进制安装K8S(中)部署网络插件和DNS

书接上文&#xff0c;我们继续部署剩余的插件 一、K8s的CNI网络插件模式 2.1 k8s的三种网络模式 K8S 中 Pod 网络通信&#xff1a; &#xff08;1&#xff09;Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容器是不会跨宿主机的&#xff09;共享…

c语言经典测试题4

1.题1 #include <stdio.h>//没有break的话&#xff0c;输入什么都会往下一直执行下去&#xff0c;而且default在最后就会全都执行 int main() {char c;int v0 0, v1 0, v2 0;do{switch (c getchar())// 输入ADescriptor{casea:caseA:casee:caseE:casei:caseI:caseo:…

特别数的和【第十届】【省赛】【B组】

题目描述 小明对数位中含有 2 、 0 、 1 、 9 2、0、1、9 2、0、1、9 的数字很感兴趣&#xff08;不包括前导 0 0 0&#xff09;&#xff0c;在 1 1 1 到 40 40 40 中这样的数包括 1 、 2 、 9 、 10 1、2、9、10 1、2、9、10 至 32 、 39 32、39 32、39 和 40 40 40&a…

Leetcode151反转字符串中的单词

思路 先从前后把前导空格删除&#xff0c;然后把中间多余的空格删除&#xff0c;使用C的流以空格为分隔符分割字符串&#xff0c;最后用reverse函数逆转。 class Solution { public:string reverseWords(string s) {//去除首位空格int i,j;for(i0,js.size()-1;;){if(s[i] ){i…

【Python笔记-设计模式】责任链模式

一、说明 旨在将请求沿着处理者链进行发送。收到请求后&#xff0c;每个处理者均可对请求进行处理&#xff0c;或将其传递给链上的下个处理者。 (一) 解决问题 将请求的发送者和接受者解耦&#xff0c;并使请求随着处理对象链传递&#xff0c;优化系统内部处理逻辑 (二) 使…

动态主机配置协议(DHCP)解密:网络自动化与管理的关键

1. 引言 动态主机配置协议&#xff08;DHCP&#xff09;是一种网络管理协议&#xff0c;用于自动地给网络中的设备分配IP地址&#xff0c;以及配置其他相关网络信息&#xff0c;如子网掩码、默认网关和DNS服务器地址。通过自动化这些配置过程&#xff0c;DHCP极大地简化了网络…

【算法 - 动态规划】找零钱问题Ⅰ

在前面的动态规划系列文章中&#xff0c;关于如何对递归进行分析的四种基本模型都介绍完了&#xff0c;再来回顾一下&#xff1a; 从左到右模型 &#xff1a;arr[index ...] 从 index 之前的不用考虑&#xff0c;只考虑后面的该如何选择 。范围尝试模型 &#xff1a;思考 [L ,…