1. //获取数组中两个相加等于0的一对数字,比如[ [ -10, 10 ], [ -5, 5 ] ]
  2. var arr=[-5,10,1,-10,3,4,5,9]
  3. //对数组进行排序
  4. arr.sort(function(num1,num2){
  5. if(num1>num2)return 1;
  6. if(num1<num2)return -1;
  7.  
  8. return 0
  9. })
  10. //用尺取法
  11. var data=[]
  12. //s1左边 s2右边 num等于某个值 arr排序后的数组
  13. function func(s1,s2,num,arr,callback){
  14. var data=[]
  15. while(s1<s2){
  16. if(arr[s1]+arr[s2]>num){
  17. s2--
  18. }
  19. if(arr[s1]+arr[s2]<num){
  20. s1++
  21. }
  22. if(arr[s1]+arr[s2]==num){
  23. data.push([arr[s1],arr[s2]])
  24. s1++
  25. s2--
  26. }
  27. }
  28. callback(data)
  29. }
  30. var s1=0,s2=arr.length-1;
  31. func(s1,s2,0,arr,function(data){
  32. console.log(data)
  33. })
  34. //获取3个数字相加等于0,
  35. for(var i=0;i<arr.length-3;i++){
  36. func(i+1,arr.length-1,-arr[i],arr,function(data){
  37. if(data.length){
  38. console.log([arr[i]].concat(data))
  39. }
  40. })
  41. }
  42. //[ -10, [ 1, 9 ], [ 5, 5 ] ]
  43. //[ -5, [ 1, 4 ] ]

  

获取数组中多个相加等于0的一组数字 javascript的更多相关文章

  1. 求数组中两两相加等于20的组合(Python实现)

    题目 求数组中两两相加等于20的组合. 例:给定一个数组[1, 7, 17, 2, 6, 3, 14],这个数组中满足条件的有两对:17+3=20, 6+14=20. 解析 分为两个步骤: 先采用堆排 ...

  2. C#中获取数组中相加和最接近或等于(<=)给定值的算法

    , ,,,,,,,,, }; List<List<int>> mylist = new List<List<int>>(); int length = ...

  3. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

  4. python获取数组中最多的元素

    获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是3种最简单的: 用max函数 sample = [1,2,3,3,3,4,5,5] max(set(sample), key=sam ...

  5. Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧   比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用 ...

  6. [JavaScript] 获取数组中相同元素的个数

    /** * 获取数组中相同元素的个数 * @param val 相同的元素 * @param arr 传入数组 */ function getSameNum(val,arr){ processArr ...

  7. js获取数组中的最大值/最小值

    目录 前言 1. 使用Math的静态方法max/min 1.1 结合ES6的扩展运算符...使用 1.2 结合apply/call方法来使用 1.3 结合reduce来使用 2. 排序获取 2.1 只 ...

  8. C++入门经典-例6.9-通过指针变量获取数组中的元素

    1:通过指针引用数组,需要先声明一个数组,再声明一个指针. int a[10]; int *p; 然后通过&运算符获取数组中元素的地址,再将地址值赋给指针变量. p=&a[0]; 代码 ...

  9. c# 获取数组中最大数的值

    求数组中最大的数的值:1.数组的max函数: class Program { static void Main(string[] args) { ,,,,,,,,,}; int max= GetMax ...

随机推荐

  1. Django--form保存用户输入内容

    需求 用户提交form时,如果报错,页面中的用户信息还在(除了密码),没有被刷新掉,不用用户再次输入. 速查 views.py 1 2 3 def login(request):     obj = ...

  2. 1.SQL

    Qt和数据库之间的操作非常广泛,Qt支持各种开源和商业的数据库. SQL支持和集成了Qt Model/View结构,让你在GUI编程中更加灵活和方便的使用数据库.

  3. Entity Framework 6.0 Tutorials(3):Code-based Configuration

    Code-based Configuration: Entity Framework 6 has introduced code based configuration. Now, you can c ...

  4. Input的size与maxlength属性的区别

    最近做项目用到input的size和maxlength属性,以前只顾用没有用心去看看这2个标签的区别,今天周末baidu了一下,有所理解.特记录于此!   <p>Name: <inp ...

  5. Python的split()函数

    手册中关于split()用法如下: str.split(sep=None, maxsplit=-1)     Return a list of the words in the string, usi ...

  6. HTML5之:link与title的区别

    [link]标签:外联导入样式 例1:<link rel="stylesheet" type="text/css" href="theme.cs ...

  7. TinyMCE4.x整合教程-Xproer.WordPaster

    版权所有 2009-2017 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webplug/wordpa ...

  8. 编写高质量代码改善C#程序的157个建议——建议35:使用default为泛型类型变量指定初始值

    建议35:使用default为泛型类型变量指定初始值 有些算法,比如泛型集合List<T>的Find算法,所查找的对象可能会是值类型,也有可能是引用类型.在这种算法内部,我们常常会为这些值 ...

  9. 树形DP-HDU1561 The more, The Better

    很好的树形DP入门题,看着和选课那道题如出一辙. Problem Description ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻 ...

  10. C# 文本输入限制类型,datagridview单元格输入验证

    1.只能输入double类型 private void textBoxX6_KeyPress(object sender, KeyPressEventArgs e) { { //数字0~9所对应的ke ...