建立四个指针

四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是$O(n^2)$,四数之和的时间复杂度是$O(n^3)$ 。

var fourSum = function(nums, target) {let arr=[]//长度不能小于4if(nums==null||nums.length<4){return arr}//排序nums.sort((a,b)=>a-b)//遍历指针ifor(let i=0;i<nums.length-3;i++){//指针i去重if(i>0&&nums[i]==nums[i-1]){continue}//遍历指针xfor(let x=i+1;x<nums.length-2;x++){//指针x去重if(x>i+1&&nums[x]==nums[x-1]){continue}let left=x+1let right=nums.length-1while(left<right){let sum=nums[i]+nums[x]+nums[left]+nums[right]if(sum==target){arr.push([nums[i],nums[x],nums[left],nums[right]])//指针left的去重while(left<right&&nums[left]==nums[left+1]){left++}//指针right的去重while(left<right&&nums[right]==nums[right-1]){right--}left++right--}else if(sum>target){right--}else if(sum<target){left++}}}}return arr};

力扣18. 四数之和(JavaScript)相关推荐

  1. 力扣18. 四数之和

    题目来源:https://leetcode.cn/problems/4sum/description/ C++题解:第一次尝试,数组排序后,分别从两端各自往里走,单个样例都能通过,但是超时 class ...

  2. 代码随想录算法训练营15期 Day7 | 454.四数相加II、 383. 赎金信 、15. 三数之和、18. 四数之和

    目录 力扣 454.四数相加II 题解:哈希表-map-unordered_map 力扣 383.赎金信 题解1:暴力解法 题解2:哈希表--数组 力扣 454.四数相加II 题目: 给你四个整数数组 ...

  3. (补)算法训练第七天|力扣454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和

    代码随想录算法训练营第七天|力扣454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 454.四数相加II 题目链接:四数相加II 参考:https://programmerc ...

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

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

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

    454.四数相加II 力扣题目链接 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i]+B[j]+C[k]+D[l] = 0. 为了 ...

  6. 代码随想录算法训练营15期 Day 7 | 454.四数相加II 、 383. 赎金信 、15. 三数之和 、18. 四数之和

    昨天看了一下别的东西,导致昨天没有练习打卡,今天补上昨天的学习知识. 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使 ...

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

    454.四数相加II 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, ...

  8. Suzy找到实习了吗Day 7 | 哈希表结束啦 454. 四数相加 II,383. 赎金信,15. 三数之和,18. 四数之和

    454. 四数相加 II(dict hash) 题目 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...

  9. 代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和

    代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体 ...

最新文章

  1. SpringMvc4中获取request、response对象的方法
  2. ASP.NET跨服务器上传文件的相关解决方案
  3. 一次 Nacos 的踩坑记录!
  4. 【Python-ML】SKlearn库集成学习器Boosting
  5. CreateDirectory GetCurrentDirectory 和SetCurrentDirectory
  6. go语言map遍历时删除是安全的, 且可以完全删除
  7. 单链表进阶学习 二段
  8. JS基础入门篇( 一 )
  9. Linux PCI驱动框架分析:(Peripheral Component Interconnect,外部设备互联)
  10. 计算机英语小短文单词易懂,少儿英语小短文:计算机
  11. Windows Server 2008 R2从低版本升级到高版本
  12. 百度地图API常规应用十功能
  13. 全新卡盟系统PHP版 集成易支付_PHP其他卡信卡盟系统平台 搭建卡盟平台多商户版源码程序系统集成易支付接口整站源码...
  14. LIBJPEG-TURBO库移植
  15. 四、day_03计时、关灯游戏
  16. SLAM数据集(tum/kitti)轨迹对齐与结果评估
  17. Matlab 之meshgrid interp griddata interp2
  18. python实训day1
  19. 近5年内有关病毒在复杂网络中传播与控制方面的20篇论文
  20. 宅男福利!爬虫实战,爬取原神真人c图片并保存,谁的老婆快抱走

热门文章

  1. java抽象机制_Java很好学:接口+抽象类+事件监听机制
  2. oracle数据库的语言,oracle数据库语言类型
  3. 如何在docker中运行MySQL实例(转载)
  4. android room 线程,Android协程——RoomCoroutines-Go语言中文社区
  5. 基于JAVA+Servlet+JSP+MYSQL的交通罚单管理系统
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游景点门票售票管理系统
  7. 基于JAVA+Spring+MYSQL的码头船只出行管理系统
  8. mysql全文索引 插件,如何编写MySQL全文索引插件
  9. springboot 实现机器学习_SpringBoot架构浅谈
  10. Macaca上手体验