zoukankan      html  css  js  c++  java
  • Day 10

    第14题:

    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 ""。(来自LeetCode)

    1、为求出最大公共前缀,可以先将数组内前两个字符串相比较求出最长前缀;

      再用最长前缀和下一个字符串相对比,依次求出公共前缀,得出结果。

      (数组的length是属性,是str.length)

        (字符串的length是方法,是str.length())

      

    第15题:

    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。

    注意:答案中不可以包含重复的三元组。来源:力扣(LeetCode)

    1、暴力求解,三重循环直接求出所需的三元组;

      其中Set集合避免了内部出现相同的集合。

      (集合长度size())

      

    2、为降低时间复杂度,改进了三重循环暴力求解;

      为方便在选择三个数的时候筛选相同的数,将数组先排序再开始筛选;

      先定位第一个数的位置,数组首位;

      因为已经定义好了第一个数nums[i],现在只需要找出和为-nums[i]的另两个数即可;

      可以将一个指针指向数组末尾,将另一个指针指向nums[i+1],当两者相加的数字比nums[i]大,说明三数之和大于0,此时就可以将指向末尾的指针后移一位;

      这样就构成了第二重循环和第三重循环再并列进行,得出结果。

      

  • 相关阅读:
    分母为0一定会抛异常吗?
    [译]Zookeeper的优点与局限性
    明明有class为什么还是报ClassNotFoundException?
    广告倒排索引架构与优化
    KafkaProducer源码分析
    Kafka服务端之网络连接源码分析
    Sublime常用快捷键
    sublime主题设置
    Sublime前端插件
    安装软件,更新软件,删除软件
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13193694.html
Copyright © 2011-2022 走看看