zoukankan      html  css  js  c++  java
  • LeetCode第十五题-找出数组中三数和为0的答案

    3Sum

    问题简介:

    给定n个整数的数组nums,是否有元素a,b,c在nums中,使a + b + c = 0?

    找到数组中所有唯一的三元组,它们的总和为零

    注:解决方案集不得包含重复的三元组

    例如{1,-1,0}和{1,0,-1}

    举例:

    给定数组 {-2,1,0,-1,-1,2,3}

    输出{

    {1,0,-1},

    {-1,-1,2},

    {-2,0,2},

    {-2,-1,3}

    }

    注:不能{0,0,0}

    错误解法:Time Limit Exceeded

    三层遍历导致时间复杂度极高

    正确解法:

    可以先将数组排序,做一个判断即排序数组第一个数字大于0或最后一个数字小于0返回空结果

    遍历一遍数组,将0与第一个数字做差,差值在剩下的数组里寻找是否有两个数的合值符合要求

    注:list和set之间转换可以通过初始化

    例如已有一个set集合想将其转为list

    List list = new ArrayList(set);

    小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

  • 相关阅读:
    数据库优化
    Oracle语句集锦
    MVC Razor标签
    转载 操作MyBatis基础
    mysql sqlserver Oracle字符串连接
    Word
    部署IIS错误
    => 朗姆达表达式带入符号
    wcf例子01
    idea通过springboot初始化器新建项目
  • 原文地址:https://www.cnblogs.com/lalalaczq/p/10740759.html
Copyright © 2011-2022 走看看