/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * intersection
 * @param nums1 int整型一维数组 数组1
 * @param nums1Len int nums1数组长度
 * @param nums2 int整型一维数组 数组2
 * @param nums2Len int nums2数组长度
 * @return int整型一维数组
 * @return int* returnsize1 返回数组行数
 * C语言声明定义全局变量请加上static,防止重复定义
 */
#include<stdio.h>
#include <stdlib.h>
int* intersection(int* nums1, int nums1Len, int* nums2, int nums2Len,
                  int* returnsize ) {
    // write code here
    int* returnsize1 = (int*)malloc(sizeof(int) * 1001);
    //!!!!!c语言返回数组要用指针定义!!!!!
    //malloc(memory allocation)动态分配内存空间,返回值类型为void,要强制转换成int指针
    int returnsize1Len = 0;
    int flag = 0;
    for (int i = 0; i < nums1Len; i++)
        for (int j = 0; j < nums2Len; j++) {
            if (nums1[i] == nums2[j]) {
                if (returnsize1Len == 0) {
                    returnsize1[returnsize1Len] = nums1[i];
                    returnsize1Len++;
                } else {
                    flag = 0;
                    for (int k = 0; k < returnsize1Len; k++) {
                        if (nums1[i] == returnsize1[k]) {
                            flag = 1;
                        }
                    }
                    if (flag == 0) {
                        returnsize1[returnsize1Len] = nums1[i];
                        returnsize1Len++;
                    }
                }
            }
        }
    *returnsize = returnsize1Len;
    return returnsize1;
}