`
flashdream8
  • 浏览: 680756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

求有序整数集合a和b的交集函数

阅读更多

问题描述:

有两个有序整数集合a和b,写一个函数找出它们的交集?

几种解决方案:

一:

import java.util.Arrays; 

public class Test { 

    public static void main(String args[]){ 
        int[] b = {4, 6, 7, 7, 7, 7, 8, 8, 9, 10, 100, 130, 130, 140, 150}; 
        int[] a = {2, 3, 4, 4, 4, 4, 7, 8, 8, 8, 8, 9, 100, 130, 150, 160}; 
        int[] c = intersect(a, b); 
        System.out.println(Arrays.toString(c)); 
    } 

    public static int[] intersect(int[] a, int[] b) { 
        if(a[0] > b[b.length - 1] || b[0] > a[a.length - 1]) { 
            return new int[0]; 
        } 
        int[] intersection = new int[Math.max(a.length, b.length)]; 
        int offset = 0; 
        for(int i = 0, s = i; i < a.length && s < b.length; i++) { 
            while(a[i] > b[s]) { 
                s++; 
            } 
            if(a[i] == b[s]) { 
                intersection[offset++] = b[s++]; 
            } 
            while(i < (a.length - 1) && a[i] == a[i + 1]) { 
                i++; 
            } 
        } 
        if(intersection.length == offset) { 
            return intersection; 
        } 
        int[] duplicate = new int[offset]; 
        System.arraycopy(intersection, 0, duplicate, 0, offset); 
        return duplicate; 
    } 
} 

 

import java.util.ArrayList; 

public class jiaoji { 

    public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        int[] b = { 4, 6, 7, 7, 7, 8, 8, 9, 10, 100, 130, 140, 150 }; 
        int[] a = { 2, 3, 4, 4, 4, 7, 8, 8, 8, 8, 9, 100, 130, 150, 160 }; 
        ArrayList c = sect(a, b); 
        for (int i = 0; i < c.size(); i++) { 
            System.out.print(c.get(i) + ","); 
        } 
    } 

    public static ArrayList sect(int[] a, int[] b) { 
        int k = 0; 
        int startposb = 0; 

        if (a[0] > b[b.length - 1] || b[0] > a[a.length - 1]) { 
            return new ArrayList(); 
        } 
        ArrayList arraylist = new ArrayList(); 
        for (int i = 0; i < a.length; i++) { 
            for (int j = startposb; j < b.length; j++) { 
                if (a[i] == b[j]) { 
                    arraylist.add(k, a[i]); 
                    k++; 
                    startposb = j + 1; 
                    break; 
                } 
            } 
        } 
        return arraylist; 
    } 
} 

 

 

import java.util.HashSet; 
import java.util.Iterator; 
import java.util.Set; 

public class NumberCross { 

    public static void main(String[] args) { 
        int a[] = {1,3,4,5,6,7,499,199}; 
        int b[] = {3,299,199,8,9,499}; 
        Set<Integer> list = new HashSet<Integer>(); 
        for(int i=0; i<a.length; i++) { 
            list.add(a[i]); 
        } 
        for(int j=0; j<b.length; j++) { 
            list.add(b[j]); 
        } 
        for(Iterator<Integer> iter=list.iterator(); iter.hasNext();) { 
            System.out.print(iter.next() + " "); 
        } 
    } 
}

 

分享到:
评论

相关推荐

    用顺序表完成2个集合的交集与并集以及各个集合的情况

    1.有序顺序表的元素按照从小到大有序存储; 2.实现有序顺序表的类模板,它的操作如下: ...3.用有序顺序表表示集合,实现两个有序顺序表的并和交(并和交仍是有序顺序表)并分析它们的时间复杂度;

    集合运算(数据结构)函数

    - 在`main`函数中,首先创建了四个集合`A`、`B`、`C`和`D`,并通过调用`Init`函数对它们进行初始化。 - 接着从标准输入读取元素填充集合`A`和`B`。 - 最后,分别调用`jiao`、`bing`和`cha`函数计算交集、并集和差集...

    教育资料完美版(2021-2022年)集合与函数概念单元测试题有答案.doc

    题目中的集合如"{21,}x xkkN+=+Î"代表所有形如2k+1的正整数集合。 4. **集合的性质**:集合间的包含关系,如BAÍ表示集合B包含于集合A。在第4题中,通过集合2{40}Ax x=-=和集合{1}Bx ax==的关系,讨论了集合相等和...

    基础篇11-python基本数据结构-元组和集合

    4. 集合运算:集合支持多种数学运算,如并集(union)、交集(intersection)、差集(difference)和对称差集(symmetric_difference)。 下面是一些常用的操作示例: ```python # 添加元素 my_set.add(4) # 删除...

    高考数学文科集合习题汇编,完美..docx

    4. **集合的运算**:题目中的A∩(RB)和A∪(RB)分别表示集合A与B的交集和并集的补集,理解这种运算规则是解题的关键。 5. **区间表示法**:例如`(-1,4)`表示所有大于-1且小于4的实数,这种表示方式在描述集合时非常...

    Abstract Algebra

    重要数学集合包括非负整数集合N、整数集合Z、有理数集合Q、实数集合R、复数集合C,以及它们的非零元素和正元素的集合,例如“Q*”表示非零有理数集合,“R**”表示正实数集合。 数论中,整数a和b的最大公约数(gcd...

    3 集合与映射

    并集是指属于集合A或集合B的所有元素组成的集合(A∪B),交集是指同时属于集合A和集合B的所有元素组成的集合(A∩B),差集是指属于集合A但不属于集合B的所有元素组成的集合(A-B),补集则是指属于全集但不属于...

    届高三数学上学期第一次月考试题 理(无答案)新人教A版.doc

    13. **集合交集**:填空题13求集合A与B的交集,A中是有序对,B中的元素满足线性关系,找出它们的共同元素。 14. **函数图像的对称轴**:填空题14涉及偶函数图像的对称性,偶函数图像关于y轴对称,所以y=f(x+1)的...

    同济高等数学PPT课件.pptx

    交集A∩B表示同时属于A和B的元素集合;差集A\B表示属于A但不属于B的元素集合。此外,集合A的补集AC或I\A表示不包含在A中的全集I的所有元素。 集合运算还遵循一些基本定律,如交换律、结合律、分配律和对偶律,这些...

    2021高考数学二轮复习精品资料专题01 集合与常用逻辑用语名校组合测试题(教师版).doc

    - 向量的坐标表示:向量可以用一对有序实数来表示,如题目中的向量a和b。 - 向量的数量积(点积):用于衡量两个向量之间的关系,如果两个向量垂直,它们的数量积为0。第2题通过计算m·n=0来判断两个向量是否垂直...

    01集合与简易逻辑.pdf

    12. 集合的交集与并集:问题13和14涉及集合的交集与并集的计算,如求A∩B或A∪B,并确定参数k的取值范围。 13. 特殊集合的构造:问题15中,集合M由所有满足πk的实数构成,其中k是整数,而集合{cos(2θ)|θ∈R}涉及...

    四川省宜宾市第三中学高中数学《集合》学案 新人教A版必修1

    10. 第10题,集合A、B、C的交集和并集运算,求解p、q的关系。 通过以上习题的解答,学生可以深入理解和掌握集合的相关知识,包括定义、性质、表示方法、关系和运算。这些基本概念和技能是进一步学习离散数学、...

    高一数学第一学期期中测试卷二.doc

    2. 集合交集的概念:第二题涉及集合的交集M∩N,要求理解集合的元素属性以及交集表示的意义,找出同时满足两个集合条件的元素或有序对。 3. 函数单调性:第三题考查二次函数、一次函数和幂函数的单调性,需要识别...

    高一数学上学期第一次月考试题(无答案)苏教版 试题.doc

    1. **集合的基本运算**:题目中提到了集合A和B的并集AUB,这是集合的基本运算之一。AUB表示集合A和集合B的所有元素组成的集合,不重复。 2. **集合与数集的关系**:题目中的(1)Z∈Q表述错误,应是Z⊆Q(整数集是...

    集合操作(交,并,补,差,环和,环积)

    在C++中,通过先计算差集A-B和B-A,然后合并它们即可得到环和。 6. **环积** (Cartesian Product):对于两个集合A和B,环积是所有可能的有序对(a, b),其中a来自A,b来自B。C++中,可以通过迭代A的每个元素并为每个...

    【复习方略】(湖北专用)2014高中数学 单元评估检测(一)新人教A版

    3. **对数函数的性质**:第三题涉及到对数函数`y=lg x`,因为x&gt;1,所以y的值域为(0, +∞),集合A就是这个值域,因此A与集合B的交集A∩B不可能包含负数,排除(A)和(D);而A∪B是A和B的所有元素集合,因此答案是(C) `...

    同济六版高等数学第一章第1节课件PPT课件.pptx

    直积或笛卡尔积是另一个重要概念,它是指从两个集合A和B中分别取一个元素,形成有序对(x, y),所有这样的有序对组成的集合称为A与B的直积,记作A×B。直积在数学的多个分支中都有广泛的应用,例如实数的直积R×R就是...

    江西省兴国县2015 2016学年高一数学上学期第一次月考试题(无答案).doc

    15. **笛卡尔积的计算**:解答题19题通过定义A×B求解集合A和B,这是笛卡尔积的运用,需要列出所有可能的有序对。 16. **稿费纳税问题**:解答题20题涉及到稿费纳税的计算,需要建立函数模型,解决实际问题。 17. ...

    福建省清流县高三数学10月月考试题 文 新人教A版 试题.doc

    1. **集合与集合的交集**:题目中的第一道选择题涉及到集合的概念,集合A和集合B的交集AB表示的是同时属于集合A和B的所有元素组成的集合。题目中给出A={-1, 0, 1},而B集合是由余弦函数y=cosx在实数范围内所有可能的...

Global site tag (gtag.js) - Google Analytics