zoukankan      html  css  js  c++  java
  • LeetCode 1213. Intersection of Three Sorted Arrays

    原题链接在这里:https://leetcode.com/problems/intersection-of-three-sorted-arrays/

    题目:

    Given three integer arrays arr1arr2 and arr3 sorted in strictly increasing order, return a sorted array of only the integers that appeared in all three arrays.

    Example 1:

    Input: arr1 = [1,2,3,4,5], arr2 = [1,2,5,7,9], arr3 = [1,3,4,5,8]
    Output: [1,5]
    Explanation: Only 1 and 5 appeared in the three arrays.

    Constraints:

    • 1 <= arr1.length, arr2.length, arr3.length <= 1000
    • 1 <= arr1[i], arr2[i], arr3[i] <= 2000

    题解:

    Have 3 pointers pointing to 3 arrays.

    If 3 pointed values are the same, add it to res and move all 3 pointers.

    Else if first value < second value, move 1st pointer.

    Else if second value < third value, now first value must be >= second value, need to move 2nd pointer.

    Else move the 3rd pointer, since noew first value >= second value and second value >= third value.

    Time Complexity: O(n). n = sum of array lengths.

    Space: O(1).

    AC Java:

     1 class Solution {
     2     public List<Integer> arraysIntersection(int[] arr1, int[] arr2, int[] arr3) {
     3         List<Integer> res = new ArrayList<>();
     4         if(arr1 == null || arr2 == null || arr3 == null){
     5             return res;
     6         }
     7         
     8         int i = 0;
     9         int j = 0;
    10         int k = 0;
    11         while(i < arr1.length && j < arr2.length && k < arr3.length){
    12             if(arr1[i] == arr2[j] && arr1[i] == arr3[k]){
    13                 res.add(arr1[i]);
    14                 i++;
    15                 j++;
    16                 k++;
    17             }else if(arr1[i] < arr2[j]){
    18                 i++;
    19             }else if(arr2[j] < arr3[k]){
    20                 j++;
    21             }else{
    22                 k++;
    23             }
    24         }
    25         
    26         return res;
    27     }
    28 }

    类似Intersection of Two Arrays.

  • 相关阅读:
    ab并发负载压力测试
    在vmware里运行qcow2镜像
    nginx root alias
    速成制作rpm包
    oracle分区表按时间自动创建
    Some network Tools
    python中defaultdict用法详解
    CENTOS7 安装telnet
    H3C 交换机配置
    H3C
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/12047372.html
Copyright © 2011-2022 走看看