计算两个数的交集(一)

问题分析:

既然返回值没有重复,我们不妨将结果放进set中,然后对两个set进行比较。

问题求解:

public class Solution {
   /**
     * @param nums1 an integer array
     * @param nums2 an integer array
     * @return an integer array
     */
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set1 = new HashSet<Integer>();
        Set<Integer> set2 = new HashSet<Integer>();
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < nums1.length; i++) {
            set1.add(nums1[i]);
        }
        for (int i = 0; i < nums2.length; i++) {
            set2.add(nums2[i]);
        }
        Iterator<Integer> it = set2.iterator();
        while (it.hasNext()) {
            int num2 = it.next();
            if(set1.contains(num2)){
                list.add(num2);
            }
        }
        int[] inter = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            inter[i] = list.get(i);
        }
        return inter;
    }
}
时间: 2024-08-10 02:11:54

计算两个数的交集(一)的相关文章

计算两个数的交集(二)

问题分析: 用两个指针分别遍历即可. 问题求解: public class Solution { /** * @param nums1 an integer array * @param nums2 an integer array * @return an integer array */ public int[] intersection(int[] nums1, int[] nums2) { List<Integer> list = new ArrayList<Integer>

LeetCode 29 Divide Two Integers (不使用乘法,除法,求模计算两个数的除法)

题目链接: https://leetcode.com/problems/divide-two-integers/?tab=Description Problem :不使用乘法,除法,求模计算两个数的除法~ 除法运算:被除数中包含有多少个除数的计算 由于是int类型的除法,因此结果可能超过int的最大值,当超过int的最大值时输出int的最大值 另写除法函数,计算出除法的商. 首先判断出除法运算后的结果是正数还是负数. 之后需要将被除数和除数都变为正数,进行进一步计算 当被除数小于除数时,返回0

C#面向对象编程-计算两个数的加减乘除

1.需求分析示例 名词提炼法: 示例:人开门 1.提取类 名词:人.门 类:人类.门类 2.分析每个类中应该有哪些方法或者属性 方法:开 那么"开"属于哪个类? 分析人和门谁最知道开这个动作,什么情况下才能使用开,门最清楚开的具体操作,等等一系列的分析,最终"开"属于门类. 3.门类示例代码 class Door { double menZhouJiaoDu;//门轴角度 double zhangDu;//弹簧张度 public void open() { //增加

计算两个数的最大公约数 gcd(a,b) &amp;&amp; 证明欧几里得算法

求两个数a和b的最大公约数,可以想到的是从[1,min(a,b)]枚举每个正整数: #include<iostream> using namespace std; int gcd(int a,int b) { int ans=1; for(int i=2;i<=min(a,b);++i) { if(a%i==0 && b%i==0) ans=i; } return ans; } int main() { int a,b; cin>>a>>b; co

回顾面试题:计算两个数组交集

*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD

用c语言实现 计算两个数的最大公约数

//编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数. //例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4 #include<stdio.h> int fun(int x,int y) { int res; res=x%y; while(res!=0) { x=y; y=res; res=x%y;//辗转 } return y; } int main() { int a; int b; printf("请输入

用shell脚本 计算两个数的加减乘除取余

#! /bin/bash # read -p '请输入数:' a //输入 read -p '请输入数:' b echo '$a+$b=' $(( a + b )) //输出 echo '$a-$b=' $(( a - b )) echo '$a*$b=' $(( a * b )) echo '$a/$b=' $(( a / b )) echo '$a%$b=' $(( a % b ))

计算两个数的中间值,并且防溢出

第一种方法:m=(s+t)/2; 第二种方法:int m = (s & t) + ((s ^ t) >> 1) 第二种方法不会溢出.

汇编语言实现求两个数的最小公约数,平方差,各占和的百分比

按下列要求编程: (1)输入两个小于100的十进制正整数. (2)求出这两个数的所有公约数. (3)求出这两个数的平方差,若是负的要输出负号. (4)计算两个数各占和的百分比,并且按照“ %”的格式输出(小数点后保留两位). (5)数据的输入和结果的输出都要有必要的提示,且提示独占一行. (6)要使用到子程序. ? 源代码: 1 data segment 2 hh db 0dh,0ah,'$' 3 m1 db 'please enter a number:',0dh,0ah,'$' 4 m2 d