jjzjj

Intersection

全部标签

C#最快的2组排序数字的交集

我在我的应用程序的时间关键部分计算2组排序数字的交集。这个计算是整个应用的最大瓶颈,所以我需要加快速度。我尝试了很多简单的选项,目前正在使用这个:foreach(varindexinfirstSet){if(secondSet.BinarySearch(index)firstSet和secondSet都是List类型。我也尝试过使用LINQ:varintersection=firstSet.Where(t=>secondSet.BinarySearch(t)>=0).ToList();然后循环遍历交点。但是由于这两个集合都已排序,我觉得有更好的方法来做到这一点。请注意,我无法从集合中删

c# - 查找所有交叉数据,而不仅仅是唯一值

我以为我理解了Intersect,但事实证明我错了。Listlist1=newList(){1,2,3,2,3};Listlist2=newList(){2,3,4,3,4};list1.Intersect(list2)=>2,3//ButwhatIwantis://=>2,3,2,3,2,3,3我可以想出一个办法:varintersected=list1.Intersect(list2);varlist3=newList();list3.AddRange(list1.Where(I=>intersected.Contains(I)));list3.AddRange(list2.Whe

c# - 使用 Linq 与自定义 IEqualityComparer 相交

长话短说:我有2个对象集合。一个包含良好的值(我们称之为“Good”),另一个包含默认值(Mr.“Default”)。我想要Good和Default以及Default之间的并集的交集。换句话说:相交(联合(好,默认),默认)。人们可能认为它解析为默认值,但这里是它变得棘手的地方:我使用自定义IEqualityComparer。我有以下类(class):classMyClass{publicstringMyString1;publicstringMyString2;publicstringMyString3;}classMyEqualityComparer:IEqualityCompar

c# - 线与 AABB 矩形相交?

最好不要使用任何类型的循环,因为这将在游戏中使用。我希望将一条线与任意大小的矩形相交。但我也希望返回交点[s]。这是可能的,我已经做了一些谷歌搜索,但仍然没有解决。直线是使用(x1,y1,x2,y2)定义的。矩形也有这两点。 最佳答案 我建议简单地对构成矩形的每条线段(边)进行线段线段相交检查。这是我很久以前写的线段相交检测算法,是从我的一个旧XNA项目中挖掘出来的://a1isline1start,a2isline1end,b1isline2start,b2isline2endstaticboolIntersects(Vector

javascript - javascript中数组交集的最简单代码

在javascript中实现数组交集的最简单、无库的代码是什么?我要写intersection([1,2,3],[2,3,4,5])得到[2,3] 最佳答案 使用Array.prototype.filter的组合和Array.prototype.includes:constfilteredArray=array1.filter(value=>array2.includes(value));对于旧版浏览器,使用Array.prototype.indexOf并且没有箭头功能:varfilteredArray=array1.filter(

javascript - 两个 SVG 元素接触时的事件

是否可以在SVG中使用任何方法调用an即使两个特定元素接触?或者我是否必须编写很长的代码,并弄清楚它们的边界是否涉及复杂的数学? 最佳答案 在SVG1.1DOM中,最外层的SVG元素实际上有四种方法可用于交集处理:getIntersectionListgetEnclosureListcheckIntersectioncheckEnclosure不幸的是,我认为对这些方法的跨浏览器支持仍然不是很好。 关于javascript-两个SVG元素接触时的事件,我们在StackOverflow上找

javascript - 下划线 _.intersection() - 怎么做?

vararr=[];arr.push(["A","B"]);arr.push(["A","C"]);arr.push(["C","D"]);如何将这个数组数组传递给_.intersection()?因为_.intersection(arr)将不起作用... 最佳答案 也许_.intersection.apply(_,arr)? 关于javascript-下划线_.intersection()-怎么做?,我们在StackOverflow上找到一个类似的问题: h

php - 在PHP中获取多维数组的交集

起点我有一个多维数组,如下面的例子:$array=array('role_1'=>array(0=>'value_2',1=>'value_3',),'role_2'=>array(0=>'value_1',1=>'value_2',),'role_3'=>array(0=>'value_2',1=>'value_3',),)目标我喜欢围绕子数组循环以仅获得交集。该数组是动态创建的,可以有很多子数组role_[x]以及子数组中的很多键/值。键不是必需的,只有值。键也是一个计数,而不是字符串。结果我喜欢在这个例子中得到这个小数组。$array=array('value_2')子数组的索引

Java 获取 BitSet 交集基数的最快方法

下面的函数采用两个BitSets,复制第一个(它不能被覆盖),将副本与第二个相交(按位与)并返回结果的基数。publicintgetIntersectionSize(BitSetbits1,BitSetbits2){BitSetcopy=(BitSet)bits1.clone();copy.and(bits2);returncopy.cardinality();}我想知道这段代码是否可以加速?这个函数被调用了十亿次,所以即使是一微秒的加速也是有意义的,而且我对最快的代码感到好奇。 最佳答案 如果您打算多次使用每个BitSet,则值得

java - WorldWind 球线相交错误?

我在WorldWind的Sphere中看到了看似矛盾的行为-线相交逻辑。我创建了一个Sphere和Line,它们相交但随后交集返回null(扫描代码以获取评论://***这就是它变得古怪的地方)。这是视觉上发生的事情(线是灰色的,但很难看到):publicclassWWTestextendsApplicationTemplate{publicstaticclassVisualizationFrameextendsApplicationTemplate.AppFrame{publicVisualizationFrame(){super(newDimension(1200,1024));f