问题描述:
有两个有序整数集合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() + " ");
}
}
}
分享到:
相关推荐
1.有序顺序表的元素按照从小到大有序存储; 2.实现有序顺序表的类模板,它的操作如下: ...3.用有序顺序表表示集合,实现两个有序顺序表的并和交(并和交仍是有序顺序表)并分析它们的时间复杂度;
- 在`main`函数中,首先创建了四个集合`A`、`B`、`C`和`D`,并通过调用`Init`函数对它们进行初始化。 - 接着从标准输入读取元素填充集合`A`和`B`。 - 最后,分别调用`jiao`、`bing`和`cha`函数计算交集、并集和差集...
题目中的集合如"{21,}x xkkN+=+Î"代表所有形如2k+1的正整数集合。 4. **集合的性质**:集合间的包含关系,如BAÍ表示集合B包含于集合A。在第4题中,通过集合2{40}Ax x=-=和集合{1}Bx ax==的关系,讨论了集合相等和...
4. 集合运算:集合支持多种数学运算,如并集(union)、交集(intersection)、差集(difference)和对称差集(symmetric_difference)。 下面是一些常用的操作示例: ```python # 添加元素 my_set.add(4) # 删除...
4. **集合的运算**:题目中的A∩(RB)和A∪(RB)分别表示集合A与B的交集和并集的补集,理解这种运算规则是解题的关键。 5. **区间表示法**:例如`(-1,4)`表示所有大于-1且小于4的实数,这种表示方式在描述集合时非常...
重要数学集合包括非负整数集合N、整数集合Z、有理数集合Q、实数集合R、复数集合C,以及它们的非零元素和正元素的集合,例如“Q*”表示非零有理数集合,“R**”表示正实数集合。 数论中,整数a和b的最大公约数(gcd...
并集是指属于集合A或集合B的所有元素组成的集合(A∪B),交集是指同时属于集合A和集合B的所有元素组成的集合(A∩B),差集是指属于集合A但不属于集合B的所有元素组成的集合(A-B),补集则是指属于全集但不属于...
13. **集合交集**:填空题13求集合A与B的交集,A中是有序对,B中的元素满足线性关系,找出它们的共同元素。 14. **函数图像的对称轴**:填空题14涉及偶函数图像的对称性,偶函数图像关于y轴对称,所以y=f(x+1)的...
交集A∩B表示同时属于A和B的元素集合;差集A\B表示属于A但不属于B的元素集合。此外,集合A的补集AC或I\A表示不包含在A中的全集I的所有元素。 集合运算还遵循一些基本定律,如交换律、结合律、分配律和对偶律,这些...
- 向量的坐标表示:向量可以用一对有序实数来表示,如题目中的向量a和b。 - 向量的数量积(点积):用于衡量两个向量之间的关系,如果两个向量垂直,它们的数量积为0。第2题通过计算m·n=0来判断两个向量是否垂直...
12. 集合的交集与并集:问题13和14涉及集合的交集与并集的计算,如求A∩B或A∪B,并确定参数k的取值范围。 13. 特殊集合的构造:问题15中,集合M由所有满足πk的实数构成,其中k是整数,而集合{cos(2θ)|θ∈R}涉及...
10. 第10题,集合A、B、C的交集和并集运算,求解p、q的关系。 通过以上习题的解答,学生可以深入理解和掌握集合的相关知识,包括定义、性质、表示方法、关系和运算。这些基本概念和技能是进一步学习离散数学、...
2. 集合交集的概念:第二题涉及集合的交集M∩N,要求理解集合的元素属性以及交集表示的意义,找出同时满足两个集合条件的元素或有序对。 3. 函数单调性:第三题考查二次函数、一次函数和幂函数的单调性,需要识别...
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的每个元素并为每个...
3. **对数函数的性质**:第三题涉及到对数函数`y=lg x`,因为x>1,所以y的值域为(0, +∞),集合A就是这个值域,因此A与集合B的交集A∩B不可能包含负数,排除(A)和(D);而A∪B是A和B的所有元素集合,因此答案是(C) `...
直积或笛卡尔积是另一个重要概念,它是指从两个集合A和B中分别取一个元素,形成有序对(x, y),所有这样的有序对组成的集合称为A与B的直积,记作A×B。直积在数学的多个分支中都有广泛的应用,例如实数的直积R×R就是...
15. **笛卡尔积的计算**:解答题19题通过定义A×B求解集合A和B,这是笛卡尔积的运用,需要列出所有可能的有序对。 16. **稿费纳税问题**:解答题20题涉及到稿费纳税的计算,需要建立函数模型,解决实际问题。 17. ...
1. **集合与集合的交集**:题目中的第一道选择题涉及到集合的概念,集合A和集合B的交集AB表示的是同时属于集合A和B的所有元素组成的集合。题目中给出A={-1, 0, 1},而B集合是由余弦函数y=cosx在实数范围内所有可能的...