-
交集选择器的经典例题
2015-05-21 14:19:42请问各位老师们 在css中的交集选择器应该怎么理解 可能的话最好有一个比较经典的例题 ps因为我的基础不是特高所以例题要简单一点 谢谢 -
集合的交集和函数的例题
2021-02-16 18:24:03 -
链表的集合交集与并集
2019-04-15 10:25:07文章目录1 例题 1 例题 #include <bits/stdc++.h> using namespace std; typedef int ElemType; typedef struct ListNode { int val; ListNode *next; //ListNode(int x):val(x),next(NULL){} }ListN....文章目录
1 例题
#include <bits/stdc++.h> using namespace std; typedef int ElemType; typedef struct ListNode { int val; ListNode *next; //ListNode(int x):val(x),next(NULL){} }ListNode; typedef struct ListNode *LinkList; void Create(LinkList *L ,int EndTag); int locate_elem(LinkList L ,ElemType e); void Insert_elem(LinkList *L,int i,ElemType e); void Delete_elem(LinkList *L,ElemType e); void inter_sec(LinkList *A,LinkList *B); void uni(LinkList *A,LinkList *B); void show_afterSort(LinkList A); int main() { //freopen("1.txt","r",stdin); std::ios::sync_with_stdio(false); int end_tag; cin>>end_tag; LinkList A_; LinkList B_; Create(&A_,end_tag); LinkList pa=A_; pa=pa->next; cout<<"A is created as: "; while(pa) { cout<<pa->val<<" "; pa=pa->next; } cout<<endl; int ind; int ele; cin>>ind>>ele; Insert_elem(&A_,ind,ele); int elem; cin>>elem; Delete_elem(&A_,elem); int find_ele; cin>>find_ele; locate_elem(A_,find_ele); int not_find; cin>>not_find; locate_elem(A_,not_find); int end_tag2; cin>>end_tag2; Create(&B_,end_tag2); LinkList pb=B_; pb=pb->next; cout<<"B is created as: "; while(pb) { cout<<pb->val<<" "; pb=pb->next; } cout<<endl; inter_sec(&A_,&B_); uni(&A_,&B_); show_afterSort(A_); free(A_); free(B_); return 0; } /* * 建立 带 表头结点的单线性链表L(尾插法) * L为头结点 */ void Create(LinkList *L ,int EndTag) { LinkList p,r; int tmp; cin>>tmp; *L=(LinkList)malloc(sizeof(ListNode)); r=*L;//r为指向尾部的节点 while(tmp!=EndTag) { p=(ListNode*)malloc(sizeof(ListNode));//产生新节点 p->val=tmp; /*尾插法*/ r->next=p; r=p; cin>>tmp; } r->next=NULL;//表示当前链表结束 } /* 寻找元素,并返回在链表中的位置 * 在指定链表L(注意没用LinkList *L,By value,非By reference)里面寻找elem * */ int locate_elem(LinkList L ,ElemType e) { int i=0; LinkList tmp; tmp=L->next; while(tmp) { i++; if(e==tmp->val) { cout<<e<<" is located at index of "<<i<<endl; return 1; } tmp=tmp->next; } cout<<e<<" is not found"<<endl; return 0; } /* * 插入元素,向*L这个链表插入元素 * By reference,函数参数传递地址,以便在主函数里面可以修改链表 * */ void Insert_elem(LinkList *L,int i,ElemType e)//By reference,函数参数传递地址,以便在主函数里面可以修改链表 { LinkList tmp; tmp=*L; //tmp=tmp->next;//tmp这个时候是第一个元素 int j=1; while(tmp&&j<i) { j++; tmp=tmp->next; } //tmp这个时候就是链表第i个元素,开始插入 LinkList inse; inse=(LinkList)malloc(sizeof(ListNode));//产生新节点 inse->val=e; inse->next=tmp->next; tmp->next=inse;//巨他妈呢坑 LinkList p=*L; p=p->next; cout<<"After inserted A is "; while(p) { cout<<p->val<<" "; p=p->next; } cout<<endl; } /* ** 删除链表*L中的元素,函数参数By reference */ void Delete_elem(LinkList *L,ElemType e) { LinkList tmp; tmp=*L;//tmp这个时候是链表的第一个元素 LinkList q;//用来回收被删除的节点 while(tmp->next) { if(tmp->next->val==e) { q=tmp->next; tmp->next=q->next; free(q);//而不是free(tmp->next) break; } tmp=tmp->next; } LinkList p=*L; p=p->next; cout<<"After deleted A is "; while(p) { cout<<p->val<<" "; p=p->next; } cout<<endl; } /* * 求交集,链表A和B,修改了链表A和B * * */ void inter_sec(LinkList *A,LinkList *B) { LinkList a_tmp=*A; LinkList b_tmp=*B; a_tmp=a_tmp->next; //b_tmp=b_tmp->next; vector<int> arr;//存储交集 while(a_tmp) { while(b_tmp->next) { if(b_tmp->next->val==a_tmp->val) { arr.push_back(a_tmp->val); LinkList p=b_tmp->next; b_tmp->next=p->next; free(p); break; } b_tmp=b_tmp->next; } a_tmp=a_tmp->next; } sort(arr.begin(),arr.end()); cout<<"A cross B is "; for(int i=0;i<=arr.size()-1;i++) cout<<arr[i]<<" "; cout<<endl; } /* * 求并集, * 修改A和B, By reference * */ void uni(LinkList *A,LinkList *B) { LinkList a_tmp=*A; LinkList b_tmp=*B; a_tmp=a_tmp->next; b_tmp=b_tmp->next; while(a_tmp->next)//巨他妈坑 a_tmp=a_tmp->next; a_tmp->next=b_tmp; LinkList a_tmp2=*A; cout<<"A union B is "; a_tmp2=a_tmp2->next; while(a_tmp2) { cout<<a_tmp2->val<<" "; a_tmp2=a_tmp2->next; } cout<<endl; } void show_afterSort(LinkList A) { vector<int> arr; LinkList p=A->next; while(p) { arr.push_back(p->val); p=p->next; } sort(arr.begin(),arr.end()); cout<<"A union B in sequence is "; for(int i=0;i<=arr.size()-1;i++) cout<<arr[i]<<" "; }
2 链表合并另一种思路参考文章,请点击
-
[C++] 349 -- 两个数组的交集
2019-07-31 21:18:13目录例题描述解题思路代码实现 例题描述 给定两个数组,编写一个函数来计算它们的交集。 示例1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出...
例题描述
给定两个数组,编写一个函数来计算它们的交集。
示例1:
- 输入:
nums1 = [1,2,2,1], nums2 = [2,2]
- 输出:
[2]
示例 2:
- 输入:
nums1 = [4,9,5], nums2 = [9,4,9,8,4]
- 输出:
[9,4]
解题思路
交集即两集合共有的元素的集合。
所以首先要保证集合的唯一性,所以选择
std::map
容器导入元素,进行去重。然后随意遍历其中一个集合中的元素,每个元素与另一个集合中查找这个元素:
- 如果存在,即为交集元素,插入需要返回的
vector
中。 - 如果不存在,即找到了
map
的end()
位置,表示存在在A
集合中的B
集合中不包含的元素,那这个元素不会处理,即不放入返回的集合。
代码实现
class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> ret; set<int> s1; for(auto e:nums1){ s1.insert(e); } set<int> s2; for(auto e:nums2){ s2.insert(e); } for(auto e:s1){ if(s2.find(e) != s2.end()) //s1和s2都共有此元素 ret.push_back(e); } return ret; } };
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/
- 输入:
-
求矩形交集简易版
2019-06-11 15:21:10例题:在二维平面上,给定两个矩形,满足矩形的每条边分别和坐标轴平行,求这个两个矩形的并的面积。即它们重叠在一起的总的面积。 解题思路: 在求两个矩形并的面积之前,我们首先需要知道其是否相交,可以按照...例题:在二维平面上,给定两个矩形,满足矩形的每条边分别和坐标轴平行,求这个两个矩形的并的面积。即它们重叠在一起的总的面积。
解题思路:
在求两个矩形并的面积之前,我们首先需要知道其是否相交,可以按照如下方式求解:并的面积 = 总面积 - 相交面积。于是问题转变成了如何求两个矩形相交的面积。
以(x1 , y1) 和 (x2 , y2)为左下顶点和右上顶点的矩形A,和以(x1’ , y1’) 和 (x2’ , y2’)为左下顶点和右上顶点的矩形B,它们有交集的条件是:max{ x1 , x1’ } < min{ x2 , x2’ }并且max{ y1 , y1’ } < min{ y2 , y2’ }。而如果相交,它们的面积也是
area = ( min{ x2 , x2’ } - max{ x1 , x1’ } ) * ( min{ y2 , y2’ } - max{ y1 , y1’ } )。代码示例: 51nod2488
#include<cstdio> #include<iostream> using namespace std; const int N = 10; int xx1[N],xx2[N],yy1[N],yy2[N]; typedef long long ll; ll jiao(int a,int b){ ll tx1 = max(xx1[a],xx1[b]),tx2 = min(xx2[a],xx2[b]); ll ty1 = max(yy1[a],yy1[b]),ty2 = min(yy2[a],yy2[b]); if( tx1 >= tx2 || ty1 >= ty2) return 0; return (tx2-tx1)*(ty2-ty1); } ll area(int x){ return (xx2[x]-xx1[x])*(yy2[x]-yy1[x]); } int main(){ scanf("%d%d%d%d",xx1+1,yy1+1,xx2+1,yy2+1); scanf("%d%d%d%d",xx1+2,yy1+2,xx2+2,yy2+2); ll ans = area(1)+area(2); ans -= jiao(1,2); printf("%lld\n",ans); return 0; }
-
区间合并
2021-01-11 11:54:01例题 #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef pair<int,int> PII; vector<PII> segs; int n; //合并 void merge(vector&... -
[C++] 349 -- 两个数组的交集 II
2019-07-31 22:17:30目录例题描述解题思路代码实现 例题描述 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] ... -
python中list函数例题_python中的set函数、列表的操作
2021-01-13 20:05:57例题:1、set函数求交集(&)、差集(-)、并集(|)s1 = set('here')s2 = set('hello')print(s1-s2)#差集print(s1&s2)#交集print(s1|s2)#并集结果:2、删除元素的重复项(1)使用set函数S = {"... -
紫书例题5-5 集合栈计算机
2020-12-01 15:49:542.set_union求并集 set_intersation求交集用法 set_union(x1.begin(),x1.end(),x2.begin(),x2.end(),inserter(x,x.begin())); 前4个参数是两个集合的起点终点.然后最后一个的插入迭代器第一个填同类型的的东西... -
Poj-3669 Meteor Shower--Bfs经典例题
2017-08-03 15:45:41Poj-3669 Meteor Shower–Bfs经典例题 题意大致是一群流星来袭,告诉你流星将要击中的坐标及到达时间(流星的作用范围是上下左右外加中间的点),要求你能否逃到安全区(是指没有被击中的地方)。 思路是建一个第... -
例题2.1 象棋中的皇后 UVa11538
2015-05-19 17:25:092.解题思路:本题利用加法...这3种情况都没有交集,因此可以使用加法原理。设三种情况对应的方案数分别为A(n,m),B(n,m),D(n,m)。下面讨论如何计算这三个值。 A(n,m)的计算可以利用乘法原理:首先选择一格,一共有nm -
两个集合相等的例题_包学习 | 集合的基本运算
2021-01-07 06:20:44集合的运算的基本运算,要求同学们对集合的交、并、补运算完成初步的概念理解,及对入门题型的初步了解。就像延续了数值的学习过程,学会了比较大小,就...小编乱入知识会知识点1 交集【重点】1. 交集1-1 定义一般... -
海量数据处理|位图、布隆过滤器、常见例题
2020-07-21 18:50:37(位图、布隆过滤器)实现方式、 一个日志文件中保存了一些IP地址,如何找到出现次数最多的IP地址 当IP地址的数量非常大,map在内存中存不下...给定两个文件AB分别有100亿个整数,只有1G内存,问如何找到两个文件的交集 -
解题报告——例题5-5 集合栈计算机 UVa12096
2020-03-07 12:20:334、INTERSECT:出栈两个元素,然后把二者的交集入栈 5、ADD:出栈两个集合,把先出栈的集合加入到后出栈的集合中,结果入栈 心路历程: 这道题当真卡了我好久好久,因为涉及到了4个容器的搭配使用,最开始总是搞不懂... -
算典05_例题_05_UVA-12096
2017-04-02 16:48:59The SetStack Computer题意有一个专门为了集合运算而设计的“集合栈”计算机。... INTERSECT:出栈两个集合,然后把二者的交集入栈 ADD:出栈两个集合,然后把先出栈的集合加入到后出栈的集合中, -
区间合并模板【彩色图示版&附例题+AC代码(全注释)】
2020-08-08 22:09:03区间合并的应用场景:给出很多个区间,把有交集的区间合并为一个【特殊规定:端点处相交,也算有交集】。 这类题目往往让我们输出最终的区间数目或者区间长度的最值,又或者是将所有区间合并的最小花费。要求我们... -
算法入门经典-第五章 例题 5-5 集合栈计算机
2017-08-12 19:05:00该机器有一个初始为空的栈,并且支持以下操作:PUSH:空集“{}”入栈DUP:把当前栈顶元素复制一份后再入栈UNION:出栈两个集合,然后把两者的并集入栈INTERSECT:出栈两个集合,然后把二者的交集入栈ADD... -
数字图形处理--4邻接,8邻接,m邻接,冈萨雷斯课后例题答案
2020-03-13 08:57:05废话不多说,4邻接,8邻接定义自己找,下面给出m邻接...2. q在p的对角领域中,并且q的4邻域与p的4领域相交为空集(交集无点属于V)。 看一个例子 两个红圈,p, q , v=1: * 不是4邻接 * 是8邻... -
例题5-12 城市正视图(Urban Elevations,ACM/ICPC World Finals 1992,UVa221)
2020-03-10 08:12:23前言:我也不太清楚刘老师为什么说这题是离散化,我想可能是用到集合的东西吧,区间完全包含于建筑的区间或者交集为空,这都是离散的知识。 代码如下: #include<set> #include<cstdio> #include<... -
autolisp统计相同元素个数_GMAT数学统计集合类五大概念解析【配例题】
2020-12-29 11:41:17一、集合 集合(Set,或简称集)是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。其中,构成集合的这些对象则称为该集合的元素。...交集定义:由属于A且属于B的相同元素组成的集合,记作A∩B(或B∩A)... -
python循环嵌套例题_零基础学python 14 循环套循环:循环的嵌套(课后习题答案)...
2020-12-03 03:50:26首先老样子,我们来回顾一下这道题的题目:主题:集合的交集现在有两个元素都是整数的list,每一个list都是一个集合(就是说,在集合内没有重复的值,比如没有两个2或者两个3什么的)。这两个list的交集就是一个在两个... -
用位图解决大量整数只出现一个,不超过两次,文件交集问题
2018-04-03 20:33:28先略提下位图:位图是建立在哈希表的基础上进行的优化,哈希表可能用1个字节或者4个字节来表示key,如果数据太多,哈希表就会占用大量空间。...例题:位图应用 给定100亿个整数,设计算法找到只出现一次的整... -
二分图详解----匈牙利算法+km算法+ Gale-Shapley---婚姻匹配算法算法+例题
2018-05-22 20:17:21准确地说:把一个图的顶点划分为两个不相交集 和 ,使得每一条边都分别连接 、 中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数条边的环」的图。图 1 是一个二分图... -
啥叫并查集啊(战术后仰) 由定义到应用带你团灭并查集 (含例题和详细注释)
2020-09-17 11:10:18在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作: Find:确定元素属于哪一个... -
判断kkt条件的例题_「概率论与数理统计」今天来谈谈条件概率和联合概率的定义...
2020-12-24 21:36:09最近在复习考研数学中的概率论与数理统计,其中有很多定义,今天结合题目打算来讲一下条件概率和联合概率的定义和用法。...那很明显,就是两个随机变量发生概率的交集,一般我们可以用P(MN)或者P(M∩N)来表... -
求两个集合是否有交集 c语言_高一数学第一次月考考点集合七大易错点汇总
2020-11-09 12:11:57Hello,大家好,这里是摆渡学涯。今天这次课程我们来为大家讲...例题1:求f(x)=x-1>0的解集错误方法:x-1>0,解得:x>1注意:题目中要求的是求出不等式的解集,而不是初中时代不等式的解,因此上面的表示... -
有关凸集的证明例题_「管理数学基础」3.1 凸分析:凸集与凸集分离定理、Farkas引理...
2021-01-06 09:12:57都有能利用的性质只有是凸集以及与两个集合的关系(从微观上,一定存在中元素乘上实数在中),应该在二者间建立联系(2)分析:与上一题思路相同(3)有限个凸集的交集为凸集。由以上凸集性质,我...
收藏数
65
精华内容
26