求并集

// 并集
public static Integer[] union1(int[] arr1,int[] arr2){
int index = 0;
int[] newarr = new int[arr1.length+arr2.length];
// 把传进来的数组添加到一个新数组里面。
for(int a:arr1){
newarr[index++] = a;
}
for(int b:arr2){
newarr[index++] = b;
}

int count = 0;
// 建立一个Integer的数组来装并集数组,因为数组的长度是固定的,用默认值null方便判断
Integer[] newarr1 = new Integer[index];
for(int a = 0;a < newarr.length;a++){
boolean flag = true;
for(int b = a+1; b < newarr.length;b++){
if(newarr[a] == newarr[b]){
flag = false;
break;//如果有相同的就跳出当前循环进入下次循环。
}
}

if(flag){
// 把不相同的元素添加到新数组里面
newarr1[count] = newarr[a];
count++;
}

}
newarr1 = Arrays.copyOf(newarr1, count);
// for(int a = 0;a<newarr1.length;a++){
// if(newarr1[newarr1.length-1]==null){
//// newarr1[a] = newarr1[newarr1.length-1];//把最后一个元素赋值给值为null的元素
// newarr1 = Arrays.copyOf(newarr1, newarr1.length-1);//复制数组,把最后一个元素给去掉
// }
//
// }

return newarr1;
}

时间: 2024-10-06 15:38:10

求并集的相关文章

delphi将两个Strlist合并,求并集

Function StrList_Merge(StrListA,StrListB:String):String; //将两个Strlist合并,求并集 var SListA,SListB,SListC:TStringList; i:Integer; begin Result := ''; Try SListA := TStringList.Create; SListB := TStringList.Create; SListC := TStringList.Create; SListA.Comm

mysql查询,left join(求并集),where(求交集)

准备(两张表t1,t2): 表t1: mysql> select * from t1; +-------+---------+ | t1_id | t1_name | +-------+---------+ |     1 | t1_1    | |     2 | t1_2    | +-------+---------+ 2 rows in set (0.02 sec) 表t2: mysql> select * from t2; +-------+---------+ | t2_id |

顺序表[求并集 方法更新]

前文链接:http://www.cnblogs.com/tinaluo/p/5240727.html 不得不说明,水平是逐渐提高的.昨天晚上看的顺序表,在第1章,今天看第12章,重新更新了方法.题目:表A 1  3  5,表B 2 4 6,都呈非递减排序,现将两个表合并成一个表,也呈非递减排序,存放在A中(或者B中),言外之意是不能开辟新表! 其实这种方法是很简单的,无奈敲的代码太少,缺乏认识.思路很容易理解,拿出B中数据,沿着A的后面一直往前比较,如果小于就一直比,如果不小于就插入数据.唯一麻

Java求字符串数组交集 并集 差集 去重复并集

//系统方法 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Test { public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add

Erlang生成式实现的列表去重、求交集及并集

%集合去重,Acc初始传入为[],存放的是最终的结果 delSame([],Acc) -> Acc; delSame([Pre|T],Acc) ->checkSame([X||X<-T,X=/=Pre],Acc++[Pre]). %求交集 crossList(L1,L2) -> [X||X<-L1,Y<-L2,X=:=Y]. %求并集 mergeList(L1,L2)-> delSame(lists:merge(L1,L2),[]). 总结:(1)erlang的生

两张表并集求相同字段的和

有两张表a b 每张表里有两个字段都是id numa表的值id  num   b表的值  id  numa    5             b   15b    10            c   20c    15            d   20d    20            e   30求出两张表的结果 用一条sql结果值id  numa   5b   25c   35d   40e   30 SELECT `id`, SUM(`num`) FROM (SELECT * FROM

用Java求字符串数组的的交集和并集

package com.array; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; public class StringArray { pu

C++程序设计实践指导1.5求两个整数集合并集改写要求实现

改写要求1:改写为单链表结构可以对任意长度整数集合求并集 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode { int data; LinkNode* next; }; class SET { public: struct LinkNode* creat(int x[],int len); struct LinkNode* copy(LinkNode* aHead); int no

【C++】判断元素是否在vector中,对vector去重,两个vector求交集、并集

#include <iostream> #include <vector> #include <algorithm> //sort函数.交并补函数 #include <iterator> //求交并补使用到的迭代器 using namespace std; //打印容器vector void print_vector(vector<int> v){ if(v.size()>0){ cout<<"{"; for