美文网首页
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

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