美文网首页
ARTS第三周20200606

ARTS第三周20200606

作者: chenyuan21177 | 来源:发表于2020-06-07 21:54 被阅读0次

Algorithm

三数之和

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

说明:

答案中不可以包含重复的三元组。

示例1

给定数组 nums = [-1, 0, 1, 2, -1, -4],

满足要求的三元组集合为:
[
[-1, 0, 1],
[-1, -1, 2]
]

代码实现

解题思路:排序+双指针

public List<List<Integer>> threeSum(int[] nums) {
     List<List<Integer>> result = new ArrayList<>();
        int len = nums.length;
        if (nums == null || len < 3) {
            return result;
        } ;
        //排序
        Arrays.sort(nums);
        for (int i = 0; i < len; i++) {
            if (nums[i] > 0) {
                return result;
            }
            if (i > 0 && nums[i] == nums[i - 1]) {
                continue;
            }
            int cur = nums[i];
            int L = i + 1;
            int R = len - 1;
            while (L < R) {
                int sum = cur + nums[R] + nums[L];
                if (sum == 0) {
                    List<Integer> temp = new LinkedList<>();
                    temp.add(cur);
                    temp.add(nums[R]);
                    temp.add(nums[L]);
                    result.add(temp);
                    while (L < R && nums[L + 1] == nums[L]) {
                        L++;
                    }
                    while (L < R && nums[R - 1] == nums[R]) {
                        R--;
                    }
                    L++;
                    R--;
                } else if (sum < 0) {
                    L++;
                } else {
                    R--;
                }
            }
        }
        return result;
}

Review mongodb

mongodb是文档型分布式数据库。
1、丰富的json文档类型
2、强大的查询语言
3、关系型数据库的所有功

Tip

mysql的InnoDB聚集索引:索引中键值的逻辑顺序决定了表中相应行的物理顺序(如字典中的拼音检索)。聚集索引一般是表中的主键索引,如果表中没有显示指定主键,则会选择表中的第一个不允许为NULL的唯一索引,如果还是没有的话,就采用Innodb存储引擎为每行数据内置的6字节ROWID作为聚集索引。叶子结点的data存储的是完成数据本身。
mysql的InnoDB非聚集索引:索引的逻辑顺序与磁盘上的物理存储顺序不同(如字典中的部首查询)。非聚集索引叶子结点data关联的是聚集索引的id,如果查询超出索引的其他字段,需要拿到对应id通过聚集索引查询数据,相当于多了一次聚集索引检索的操作

Share

缓存更新的套路

相关文章

  • ARTS第三周20200606

    Algorithm 三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b...

  • ARTS打卡第三周

    ARTS打卡第三周 Algorithm:每周至少做一个 leetcode 的算法题 839. 相似字符串组 解题思...

  • ARTS第三周

    Algorithm leetCode 60 Permutation SequenceGiven n and k, ...

  • 第三周ARTS

    Algorithmic 用链表将两数相加,之后输出和。https://leetcode-cn.com/proble...

  • ARTS第三周

    Algorithm。主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再...

  • ARTS第三周

    1.Algorithm:只出现一次的数字 2.Review:在shell中键入命令都发生了什么? 3.Tip:自动...

  • ARTS打卡,第三周

    每周完成一个ARTS:1.A(Algorithm)每周至少做一个 leetcode 的算法题2.R(Review)...

  • ARTS打卡第三周

    Algorithm Review 个人语音计算平台想让类airpods产品成为一个突破性的个人计算平台(就像sma...

  • ARTS挑战-第三周

    Algorithm Review Improving Immutable Object Initializatio...

  • ARTS-第三周

    Algorithm 这周实现了最基本的动态数据结构链表,并用数组和链表分别实现了栈和队列。 git代码地址 数组和...

网友评论

      本文标题:ARTS第三周20200606

      本文链接:https://www.haomeiwen.com/subject/fqittktx.html