public class Solution
{
public int[] Intersect(int[] nums1, int[] nums2)
{
var len1 = nums1.Length;
var len2 = nums2.Length; var list = new List<int>();//用于存放最后的结果 var dic1 = new Dictionary<int, int>();//记录第一个数组的特征
var dic2 = new Dictionary<int, int>();//记录第二个数组的特征 for (int i = ; i < len1; i++)
{
if (!dic1.ContainsKey(nums1[i]))
{
dic1.Add(nums1[i], );
}
else
{
dic1[nums1[i]]++;
}
} for (int i = ; i < len2; i++)
{
if (!dic2.ContainsKey(nums2[i]))
{
dic2.Add(nums2[i], );
}
else
{
dic2[nums2[i]]++;
}
} if (dic1.Count <= dic2.Count)
{
//以dic1为基础循环 foreach (var d in dic1)
{
if (dic2.ContainsKey(d.Key))
{
var count = Math.Min(d.Value, dic2[d.Key]);
while (count > )
{
list.Add(d.Key);
count--;
}
}
}
}
else
{
//以dic2为基础循环
foreach (var d in dic2)
{
if (dic1.ContainsKey(d.Key))
{
var count = Math.Min(d.Value, dic1[d.Key]);
while (count > )
{
list.Add(d.Key);
count--;
}
}
}
} foreach (var l in list)
{
Console.WriteLine(l);
} return list.ToArray();
}
}

https://leetcode.com/problems/intersection-of-two-arrays-ii/#/description

leetcode350的更多相关文章

  1. [Swift]LeetCode350. 两个数组的交集 II | Intersection of Two Arrays II

    Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...

  2. leetcode350之实现求解两数组交集(包含重复元素)

    给定两个数组,编写一个函数来计算它们的交集. 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致. 我们可以不考虑输出结果的顺序 def binarySearch(nums, t ...

  3. [leetcode350]Intersection of Two Arrays II求数组交集

    List<Integer> res = new ArrayList<>(); Arrays.sort(nums1); Arrays.sort(nums2); int i1 = ...

  4. LeetCode 349,350 数组的交集

    LeetCode 349: package com.lt.datastructure.Set; import java.util.ArrayList; import java.util.LinkedH ...

随机推荐

  1. 初次实践数据库--SQL Server2016

    初学数据库使用 安装了SQL Server2016的开发者版本,本来以为就可以愉快地开始数据库的挖坑了,发现开出来之后除了创建数据库.选择数据库以外,并没有什么操作. 后来才发现还需要再安装SSMS( ...

  2. hdu5229

    bc41第二题: 题意:两个人有 n 个串,随机选出两个串,可以进行这样的操作:①选一个串消去最后一个字符,②若两串相同则可以全部消去两串 若到某个人时正好消去两个串,则这个人胜另一人负,问先手胜概率 ...

  3. http-equiv 了解

    META标签是HTML语言HEAD区的一个辅助性标签,它位于HTML文档头部的<HEAD>标记和<TITLE>标记之间,它提供用户不可见的信息.meta标签通常用来为搜索引擎r ...

  4. 使用cglib动态创建javabean

    动态创建javabean对于我们进行开发,会有一定的帮助,一下是使用cglib动态创建javabean的一个例子: 先贴上code: package com.dalong.CreateCode; im ...

  5. 上产使用MQ的三点注意

    安全性考量:在正式环境中使用消息队列中间件服务一定要做相关的安全性设置.包括启用消息队列服务的用户名和密码.启用消息队列服务自带的SSL加密设置.如果您使用的消息队列服务不自带SSL加密,则一定要自己 ...

  6. 【转】每天一个linux命令(45):free 命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/25/2831814.html free命令可以显示Linux系统中空闲的.已用的物理内存及swap ...

  7. zstack(一)运行及开发环境搭建及说明(转载)

    本篇介绍zstack的部署环境,以及二次开发环境 运行环境 讲真,ZStack的安装做的还是不错的,提供多种安装模式,如离线安装.在线安装.一键安装.分布式安装等.安装的过程其实都很简单,当然这也是z ...

  8. django 获取前端获取render模板渲染后的html

    function GetProxyServerByGroup(ths, action){ var _html = $.ajax({ url: "/nginx/get_proxy_server ...

  9. FineUI利用JS取控件的值

    用ExtJS的获取方式应该就可以了把...我是直接用Ext.getCmp("txt_cusname").getValue;不过txt_cusname这个控件如果是runat=&qu ...

  10. Angular 4 http通讯 解决服务器参数无法接收问题

    1.导入 import { Component, OnInit } from '@angular/core'; import {Observable} from 'rxjs/Observable'; ...