LeetCode 2540.最小公共值

题目

给你两个整数数组 nums1nums2 ,它们已经按非降序排序,请你返回两个数组的 最小公共整数 。如果两个数组 nums1nums2 没有公共整数,请你返回 -1

如果一个整数在两个数组中都 至少出现一次 ,那么这个整数是数组 nums1nums2 公共 的。

思路:双序列双指针

代码

java 复制代码
class Solution {
    public int getCommon(int[] nums1, int[] nums2) {
        int n1 = nums1.length;
        int n2 = nums2.length;
        for (int i = 0, j = 0; i < n1 && j < n2;) {
            if (nums1[i] == nums2[j]) {
                return nums1[i];
            } else if (nums1[i] < nums2[j]) {
                i++;
            } else {
                j++;
            }
        }
        return -1;
    }
}

性能

时间复杂度o(min(n1,n2))

空间复杂度o(1)

相关推荐
yunyun321234 分钟前
跨语言调用C++接口
开发语言·c++·算法
m0_518019487 分钟前
C++中的装饰器模式变体
开发语言·c++·算法
xushichao198914 分钟前
高性能密码学库
开发语言·c++·算法
m0_5180194816 分钟前
C++代码混淆与保护
开发语言·c++·算法
m0_5698814719 分钟前
C++中的智能指针详解
开发语言·c++·算法
blackicexs22 分钟前
第九周第三天
算法
自信1504130575931 分钟前
选择排序算法
c语言·数据结构·算法·排序算法
2401_8735449233 分钟前
基于C++的游戏引擎开发
开发语言·c++·算法
add45a33 分钟前
C++中的组合模式
开发语言·c++·算法
無限進步D35 分钟前
简单贪心算法 cpp
c++·算法·贪心算法·蓝桥杯·入门·竞赛