Leetcode面试经典150题-349.两个数组的交集

题目比较简单,散散心吧

解法都在代码里,不懂就留言或者私信

java 复制代码
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        /**先排个序 */
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int curIndex1 = 0;
        int curIndex2 = 0;
        /**先把数组的大小设置为最大可能,最大可能就是跟小数组等长 */
        int[] ans = new int[Math.min(nums1.length, nums2.length)];
        /**记录答案的有效长度 */
        int validLen = 0;
        while(curIndex1 < nums1.length && curIndex2 < nums2.length) {
            /**如果和之前的数一样就跳下一个,nums1和nums2一样的逻辑 */
            while(curIndex1 < nums1.length && curIndex1 != 0 && nums1[curIndex1] == nums1[curIndex1 - 1]) {
                curIndex1 ++;
            }
            if(curIndex2 < nums2.length && curIndex2 != 0 && nums2[curIndex2] == nums2[curIndex2 - 1]) {
                curIndex2 ++;
            }
            /**任何一个到达最后了,没必要继续了,不会再有相等的数了 */
            if(curIndex1 == nums1.length || curIndex2 == nums2.length) {
                break;
            }
            /**如果相等,记录交集,两个都跳下一个 */
            if(nums1[curIndex1] == nums2[curIndex2]) {
                ans[validLen++] = nums1[curIndex1];
                curIndex1 ++;
                curIndex2 ++;
                /**else if和else里是同一个意思,谁小谁跳下一个,因为下个数更大才有可能和另外一个相等 */
            } else if(nums1[curIndex1] > nums2[curIndex2]) {
                curIndex2 ++;
            } else {
                curIndex1 ++;
            }
        }
        /**拷贝出有效的长度 */
        return Arrays.copyOf(ans, validLen);
    }
}

这种题出现就是送你通过的,没必须追求极致,个人觉得

相关推荐
KaMeidebaby23 分钟前
卡梅德生物技术快报|PD1 单克隆抗体定制配套 N 糖全谱质控开发
前端·人工智能·算法·数据挖掘·数据分析
8Qi81 小时前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
bIo7lyA8v1 小时前
算法稳定性分析中的随机扰动建模的技术8
算法
科研online2 小时前
基于多源数据和XGBoost-SHAP分析中国大陆绿地碳汇空间变异影响因素的非线性相关性与尺度差异
算法·学习方法
Cthy_hy2 小时前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
三品吉他手会点灯3 小时前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
VkN2X2X4b3 小时前
算法复杂度的实验验证与误差分析的技术8
算法
其利天下技术3 小时前
风扇灯无刷电机自适应算法实战指南
算法·cocos2d·无刷电机自适应算法·bldc驱动自适应算法·其利无刷电机驱动算法
8Qi83 小时前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
hujinyuan201604 小时前
2026年3月 中国电子学会青少年软件编程(Python)三级考试试卷 真题及答案
java·python·算法