题目:两个数组的交集 II

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]

示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。

代码实现:

/*** Return an array of size *returnSize.* Note: The returned array must be malloced, assume caller calls free().*/
void Swap(int A[], int i, int j)
{int temp = A[i];A[i] = A[j];A[j] = temp;
}int Partition(int A[], int left, int right)  // 划分函数
{int pivot = A[right];               // 这里每次都选择最后一个元素作为基准int tail = left - 1;                // tail为小于基准的子数组最后一个元素的索引for (int i = left; i < right; i++)  // 遍历基准以外的其他元素{if (A[i] <= pivot)              // 把小于等于基准的元素放到前一个子数组末尾{Swap(A, ++tail, i);}}Swap(A, tail + 1, right);           // 最后把基准放到前一个子数组的后边,剩下的子数组既是大于基准的子数组// 该操作很有可能把后面元素的稳定性打乱,所以快速排序是不稳定的排序算法return tail + 1;                    // 返回基准的索引
}void QuickSort(int A[], int left, int right)
{if (left >= right)return;int pivot_index = Partition(A, left, right); // 基准的索引QuickSort(A, left, pivot_index - 1);QuickSort(A, pivot_index + 1, right);
}int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {int len = nums2Size;int i, j, k = 0;int flag = 0;int *array_bak;/* 快速排序 */QuickSort(nums1, 0, nums1Size - 1);QuickSort(nums2, 0, nums2Size - 1);/* 处理特殊情况并获取数组长度 */if(nums1Size == 0)return;else if(nums2Size == 0)return;else if(nums1Size < nums2Size)len = nums1Size;int array[len];/* 判断数组中是否有交集 */for(i = 0; i < nums1Size; i++){for(j = flag; j < nums2Size; j++){if(nums1[i] == nums2[j]){array[k] = nums2[j];k++;flag = j + 1;break;}}}/* 返回数组大小 */*returnSize = k;/* 为返回数组分配空间 */array_bak = (int *)malloc(sizeof(int) * k);/* 为返回数组赋值 */memcpy(array_bak, array, sizeof(int) * k);return array_bak;
}

Leetcode算法题(C语言)7--两个数组的交集 II相关推荐

  1. Leetcode刷题100天—349. 两个数组的交集(集合)—day08

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 349. 两个数组的交集 难度简单410收藏分享切换为英文接收动态反馈 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = ...

  2. LeetCode算法题350:两个数组的交集II(Intersection of Two Arrays II)

    技术交流可以加: 本人微信:xcg852390212 本人qq:852390212 学习交流qq群1(已满): 962535112 学习交流qq群2: 780902027 两个数组的交集II Leet ...

  3. leetcode初级算法4.两个数组的交集 II

    leetcode初级算法4.两个数组的交集 II 仅为个人刷题记录,不提供解题思路 题解与收获 我的解法:(总结在代码中) public int[] intersect(int[] nums1, in ...

  4. 两个对象数组交集_yiduobo的每日leetcode 349.两个数组的交集 amp;amp; 350.两个数组的交集II...

    祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧 349.两个数组的交集https://leetcode-cn.com/problems/intersection ...

  5. leetcode系列-350.两个数组的交集II

    leetcode系列–第350题.两个数组的交集II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集. 返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一 ...

  6. LeetCode 350. 两个数组的交集 II

    350. 两个数组的交集 II 难度简单640收藏分享切换为英文接收动态反馈 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集.返回结果中每个元素出现的次数,应与元素在两 ...

  7. 两个数组的交集 II

    两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 ...

  8. LeetCode 350. 两个数组的交集 II ntersection of Two Arrays II

    Table of Contents 一.中文版 二.英文版 三.My answer 四.解题报告 一.中文版 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2 ...

  9. Leetcode 350. 两个数组的交集 II 解题思路及C++实现

    解题思路: 和349. 两个数组的交集 这道题目很相似,这道题只是在返回的数组中,多了重复的数字,其实相较于349题,350题更简单. 先对两个数组进行排序,然后遍历这两个数组,找到相同的数字之后,就 ...

最新文章

  1. DX11 preprocessor Dynamic shader linkage
  2. 使用jqprint插件完成页面打印
  3. 用计算机自我介绍,计算机个人简历:计算机专业简历自我介绍【四篇】供参考使用(5页)-原创力文档...
  4. 提交日期表单状态操作_奇怪的知识又增加了,表单还能查寝?
  5. springboot上传限制1M的大坑
  6. 科学计算机器科学计算机,科学计算器多功能版
  7. html5中event获取data和class
  8. Socket网络编程初探
  9. Java Web开发实战经典 李兴华 PDF pdf
  10. dota2服务器切换账号,DOTA2网络卡顿得到改善 全面更换电信服务器机房
  11. 异常声音检测之kaldi DNN 训练
  12. 微信下载app,弹出出应用宝商店的解决方案
  13. 1.6 CPU性能公式
  14. B站高管解读财报:要更快实现盈亏平衡 陈睿亲自盯减亏工作
  15. java驱动sikuli打开虎牙直播
  16. Nginx无证书反向代理
  17. 帮我写一段描写时间过得很快,但是自己又很不想时间过得那么快的小作文
  18. C# SmartThreadPool线程池技术实现多任务批量处理
  19. 2022广东专升本计算机真题讲解
  20. mybatis内用大于号小于号

热门文章

  1. python语言中包含的标准数据类型_Python标准数据类型
  2. 余弦相似度/卷积核之间的成对余弦相似性
  3. 抛物线的中点生成算法_零基础学习梯度下降算法
  4. phpcms函数:用*号替换(私密信息)中间数据(如手机号、邮箱)
  5. .jsp页面提交form表单,后台却无法获取input文本框value值
  6. ElementUI弹框组件 messageBox 如何换行 ?
  7. Lemmy仿Reddit社区 v0.8.10源码
  8. html5健康有机蔬菜果汁店网站模板
  9. idea 父文件_在ideal创建新的模块(子项目,同时依赖父模块)
  10. 如何保证投票公平_从声音玩具淘汰、五条人复活,我看到了《乐队的夏天》的不公平...