首页 > 编程语言 >代码随想录算法训练营第七天 | ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

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

时间:2023-11-18 17:14:11浏览次数:38  
标签:map 四数 15 nums sum get 随想录 char let

今日学习的文章链接和视频链接

● 454.四数相加II

var fourSumCount = function(nums1, nums2, nums3, nums4) {
    let count = 0
    let map = new Map();
    for(let number1 of nums1){
        for(let number2 of nums2){
            let sum = number1 + number2;
            if(!map.get(sum)){
                map.set(sum,1)
            }else{
                map.set(sum ,map.get(sum)+1)
            }
        }
    }
    for(let number1 of nums3){
        for(let number2 of nums4){
            let sum = number1+number2;
            if(map.get(0-sum)){
                count+= map.get(0-sum)
            }
        }
    }
    return count

};

● 383. 赎金信

var canConstruct = function(ransomNote, magazine) {
    let map = new Map();
    for(let char of magazine){
        if(!map.get(char)){
            map.set(char,1)
        }else{
            map.set(char,map.get(char)+1)
        }
    };
    for(let char of ransomNote){
        if(!map.get(char)){
            return false
        }else{
            map.set(char,map.get(char)-1)
        }
    }
    return true

};

● 15. 三数之和

var threeSum = function(nums) {
    let res = [] ;
    let len = nums.length;
    nums.sort((a,b)=>a-b)
    for(let i = 0 ; i < nums.length ; i++){
        let l = i + 1;
        let r = len-1 ; 
        if(nums[i]>0) return res;
        if(i>0&& nums[i] == nums[i-1]){
            continue;
        }
        while(l<r){
            let sum = nums[i] + nums[l] + nums[r];
            if(sum < 0 ){
            l++
        }else if(sum > 0 ){
            r--
        }else{
            res.push([nums[i],nums[l],nums[r]])
            while(nums[r] == nums[r-1]){
                r--
            }
            while(nums[l] === nums[l+1]){
                l++
            }
            r--;
            l++;
        }
        }
        
    }
    return res

};

● 18. 四数之和

var fourSum = function (nums, target) {
    if (nums.length < 4) return []
    nums.sort((a, b) => a - b)
    let res = []
    for (let k = 0; k < nums.length - 3; k++) {
        if (k > 0 && nums[k] == nums[k - 1]) continue;
        for (let i = k + 1; i < nums.length - 2; i++) {
            if (i > k + 1 && nums[i] == nums[i - 1]) continue;
            let l = i + 1;
            let r = nums.length - 1;

            while (l < r) {
                let sum = nums[k] + nums[i] + nums[l] + nums[r];
                if (sum < target) {
                    l++;
                    continue
                } else if (sum > target) {
                    r--;
                    continue
                } else {
                    res.push([nums[k], nums[i], nums[l], nums[r]]);
                    while (l < r && nums[l] == nums[l + 1]) {
                        l++
                    }
                    while (l < r && nums[r] == nums[r - 1]) {
                        r--
                    }
                    l++;
                    r--
                }
            }

        }
    }
    return res

};

今日收获,记录一下自己的学习时长

3h

标签:map,四数,15,nums,sum,get,随想录,char,let
From: https://www.cnblogs.com/lijiacheng/p/17840743.html

相关文章

  • 【15章】网络安全主动防御技术与应用
    15.1入侵阻断技术与应用入侵阻断是网络安全主动防御的技术方法,其基本原理是通过对目标对象的网络攻击行为进行阻断,从而达到保护目标对象的目的。15.1.1入侵阻断技术原理防火墙、IDS是保障网络安全不可缺少的基础技术,但是防火墙和IDS本身存在技术上的缺陷。防火墙是基于静......
  • 代码随想录算法训练营第六天 |● 哈希表理论基础 ● 242.有效的字母异位词 ● 349.
    今日学习的文章链接和视频链接https://programmercarl.com/哈希表理论基础.html242.有效的字母异位词varisAnagram=function(s,t){if(s.length!==t.length)returnfalseletmap=newMap();for(letcharofs){if(!map.get(char)){......
  • L1-6 吉老师的回归 (15 分)(C/C++)
    输入样例1:51L1-1isaqiandaoproblem.L1-2isso...easy.L1-3isEasy.L1-4isqianDao.Wow,suchL1-5,soeasy.输出样例1:L1-4isqianDao.输入样例2:54L1-1isa-qiandaoproblem.L1-2issoeasy.L1-3isEasy.L1-4isqianDao.Wow,suchL1-5,so!!easy.输出样例......
  • AO3415-ASEMI低压MOS管AO3415参数、封装、尺寸
    编辑:llAO3415-ASEMI低压MOS管AO3415参数、封装、尺寸型号:AO3415品牌:ASEMI封装:SOT-23连续漏极电流(Id):4A漏源电压(Vdss):20V功率(Pd):1.5W芯片个数:1引脚数量:3类型:MOS管特性:P沟道MOS管、低压MOS管RDS(on):55mΩVGS:1.45封装尺寸:如图工作温度:-55°C~150°CAO3415特性:AO3415采用先进的沟槽......
  • AO3415-ASEMI低压MOS管AO3415参数、封装、尺寸
    编辑:llAO3415-ASEMI低压MOS管AO3415参数、封装、尺寸型号:AO3415品牌:ASEMI封装:SOT-23连续漏极电流(Id):4A漏源电压(Vdss):20V功率(Pd):1.5W芯片个数:1引脚数量:3类型:MOS管特性:P沟道MOS管、低压MOS管RDS(on):55mΩVGS:1.45封装尺寸:如图工作温度:-55°C~150°CAO3415特性:AO......
  • 软件设计实验15:职责链模式
    实验15:职责链模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解职责链模式的动机,掌握该模式的结构;2、能够利用职责链模式解决实际问题。 [实验任务一]:财务审批某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万......
  • (链表)15-删除有序链表中的重复元素-a
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/12publicclassSolution{13/**14*@paramhead......
  • [20231115]如何快速获取AWR中涉及到的表.txt
    [20231115]如何快速获取AWR中涉及到的表.txt--//昨天看了链接:如何快速获取AWR中涉及到的表=>https://www.cnblogs.com/jyzhao/p/how-to-get-tables-in-awr.html--//作者介绍的方法是直接从awr报表抽取from后面的信息,grep写法还很少用.grep-o-i'\bFROM\s\+\(\w\+\)'awr.html......
  • 关于 Angular 构建之后生成的 dist 目录和 esm2020, fesm2015 等等
    在Angular应用中,dist目录是构建应用后的输出目录,其中包含了已编译、打包和优化的应用文件。assets文件夹通常用于存放应用所需的静态资源,如图片、字体、配置文件等。esm2020、fesm2015和fesm2020是Angular构建过程中生成的文件夹,它们主要与Angular的模块加载系统和代码优化有关。......
  • P4115 Qtree4 题解
    P4115看到单点修改,求全局白色的最远距离,可以使用点分树。考虑维护这棵点分树,想想树的直径的dp求法:\(f_u=\max\{f_v+w(u,v)\}\),答案为\(\max(f_v+f_{v'})(v,v'\in\{\text{son}_u\})\),\(\{\text{son}_i\}\)表示\(i\)的孩子集合。这时候维护就十分简单了,对于每个点都......