首页 > 其他分享 >350. 两个数组的交集 II C

350. 两个数组的交集 II C

时间:2024-02-28 20:34:01浏览次数:26  
标签:Note 交集 II int 数组 350

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */

int min(int i,int j){
    if(i<j) return i;
    return j;
}

int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {
    int hash1[1001]={0};
    int hash2[1001]={0};
    int* returnarray=(int*)malloc(sizeof(int)*1000);
    for(int i=0;i<1000;i++) returnarray[i]=0;
    for(int i=0;i<nums1Size;i++) hash1[nums1[i]]++;
    for(int i=0;i<nums2Size;i++) hash2[nums2[i]]++;
    int n=0;
    for(int i=0;i<1001;i++){
        if(hash1[i]!=0 && hash2[i]!=0){
            int t=min(hash1[i],hash2[i]);
            while(t!=0) {
                returnarray[n++]=i;
                t--;
            }
        }    
    }
    *returnSize=n;
    return returnarray;
}   

16min

结果:

标签:Note,交集,II,int,数组,350
From: https://www.cnblogs.com/llllmz/p/18041712

相关文章

  • 349. 两个数组的交集C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*intersection(int*nums1,intnums1Size,int*nums2,intnums2Size,int*returnSize){inthash1[1001]={0};inthash2[1001]={0};int*tem=(int*)malloc(sizeof......
  • 142. 环形链表 II C
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){if(!head||!head->next)returnNULL;structListNode*slow=head;s......
  • IIS部署 HTTP 错误 500.19 - Internal Server Error 解决步骤 由于权限不足而无法
    配置应用程序池的身份 调整文件和文件夹权限确保应用程序池的身份有权访问网站的目录和文件在网站中进行配置1.添加2.高级3.立即查找找到所需身份名称后添加权限 至少需要读取权限,如果应用程序需要写入文件或目录,则还需要写入权限 ......
  • day44 动态规划part6 代码随想录算法训练营 518. 零钱兑换 II
    题目:518.零钱兑换II我的感悟:递推公式,我没写错。是初始化写错了。这种求多少种的,要考虑1种,是空集合选1中。而那些考虑能背最大的价值,要从0初始化,0的含义值无价值。 理解难点:递推公式,是累加dp[j]+=dp[j-conins[i]]初始化的含义 dp[0]=1听课笔记: 代码示例:cl......
  • CF1034E Little C Loves 3 III 题解
    这道题与P6097【模板】子集卷积基本相同,但是每个元素的值属于\([0,3]\),且\(n\le21\),时限\(\rm1s\)。在做P6097这道题的时候,我们多开了一维用来记录二进制下\(1\)的个数。但是这道题每个元素的值只属于\([0,3]\),我们可以用一种十分巧妙的方法:我们设\(f(x)\)表示\(......
  • 【力扣】反转链表II
    题目描述思路老样子,还是先用递归试试。在基本问题中,也就是left==rigth或者left+1==right时,直接将两个元素调换顺序即可。我突然发现代码随想录里好像讲过一个用双指针法反转链表的算法。那道题是把整个链表翻转,代码如下://双指针法classSolution{public:ListN......
  • 2050 并行课程 III
    原题链接题解:拓扑排序+动态规划我们首先根据给定的先修课程关系,构建出一个有向无环图。已知每个结点的时间都是time[i-1]+其入度结点的最大值。最后比较出最大的出度为零的结点的时间code classSolution{public:staticconstintN=5e4+5;inthead[N],Next[N]......
  • day43 动态规划part5 代码随想录算法训练营 1049. 最后一块石头的重量 II
    题目:1049.最后一块石头的重量II我的感悟:复习了昨天的模板是不一样,今天这个我推出来了。哈哈 理解难点:按照昨天的思路,dp[target]里面是能凑出来的最大值。a是另外能凑出来的和。diff是两者的差。听课笔记:我自己先写出的代码:classSolution:deflastStoneW......
  • P2350 [HAOI2012] 外星人 题解
    很巧妙的一道题。首先会发现如果最终\(\varphi(N)=1\)的话一定是通过很多次从\(2\)这个因子变到\(1\)的。而这个函数每迭代一次,就会有且仅有一个\(2\)的因子变为\(1\)。所以题目转化为了求\(N\)在函数迭代过程中一共会产生多少个\(2\)的因子。考虑\(\text{dp}\),设......
  • 代码随想录 day63 下一个更大元素II 接雨水
    下一个更大元素II更下一个最大元素是一样的思路需要处理的是成环数组的模拟过程可以把两个一样的目标数组拼接在一起这样就相当于它成环了或者i变成两倍的范围然后目标下标就变成i%length这样i就会落回目标数组的下标也就是成环了接雨水实际上双指针法可能更......