我有2d点(x,y)和浮点坐标,当我绘制它们时,如果它们彼此接近,我需要对点进行分组,并且它们应该在有固定大小的矩形的帮助下进行分组.问题是这些矩形不应该相交,所有点邻居都应该分组.
如果附近有纸,可以绘制一个大矩形,例如4*5cm - 所有点所在的区域.现在随机放点,比方说,如果有距离为1厘米的点 - 它们应该分组为矩形2*3.
我找不到算法如何制作它,性能也很重要......我寻找嵌套,聚类但我需要的是有点不同.顺便说一句,如果某些分组矩形必须超出公共区域以适应条件,那就让它成为现实,这不是问题.例如,您有4*5区域和积分
(1,0), (2,1), (4,1), (4,3), (2,4)
Run Code Online (Sandbox Code Playgroud)
然后结果应该是rectangles (0,0 - 3,2) & (3,1 - 6,3) and one point left (2,4)因为所有其他点都被分组,这一点现在没有任何邻居.
我的点坐标不是整数而是浮点数,点数可以是几百(最多500).而且我不想在相同的矩形上打破区域并且只计算有多少点,我的意思是例如上面我可以制作反角(0,0 - 3,2),(3,0 - 6,2) ,(0,3 - 3,6),(3,3 - 6,6)并且只是总结第一个矩形的第2点,第二个是(!),第二个是什么意思,保留原样,1表示第3个,1表示第4个=>根据任务,将绘制一个矩形并且所有其他点=>错误结果.有任何想法吗?至少哪些算法可以帮助,在哪里寻找......
PS现在结果中的组/点数无关紧要,例如上面的另一个允许结果可能是(1,0-4,2)和(2,2-5,4)矩形,没有剩下的点
我工作的公司中的一个团队存在以下问题.他们开发了一个应用程序,它将具有不同的构建(例如,取决于客户的不同设计).所以他们有一些代码在构建之间共享,一些特定于构建.例如,第一次构建有(例子对于文件没有意义,只是为了理解问题;我不确切地知道哪些代码不同)
/src/class1.java
/src/class2.java
/res/image1.png
/res/image2.png
Run Code Online (Sandbox Code Playgroud)
第二个项目包含
/src/class1.java
/src/class3.java
/res/image1.png
/res/image3.png
Run Code Online (Sandbox Code Playgroud)
如你所见,两者都有class1.java和image1.png.别的东西是不同的.当然,项目要复杂得多,所以在一个项目中包含所有东西都不舒服......而且要制作不同的分支并将相同的代码提交给所有这些代码并不舒服......
可能我选择了错误的方向思考这个问题,但我只是看看git(我们使用svn),它允许分离的存储库.问题是:是否有可能在git中创建不同的分支,但告诉它"这些文件应该在它们之间共享",其他文件应该只在那些分支中.然后,当开发人员提交class1.java时,git会在所有分支/ repositorias等中同步它.也许有另一个解决方案可以轻松采取?
我有以下问题:我的表是大的(数百万个数据行),这是我处理的临时数据.我需要根据某些标准选择一列的最大值和最小值,处理此信息并根据相同的标准删除数据.实际上,最简单的实现看起来像:
select max(col), min(col) from _TABLE_ where _CONDITION_;
...
delete from _TABLE_ where _CONDITION_;
Run Code Online (Sandbox Code Playgroud)
table很大,当我处理它时,在循环中查询,这需要一些时间.我想我可以使用delete中的"返回"来优化它,比如
delete from _TABLE_ where _CONDITION_ returning max(col), min(col);
Run Code Online (Sandbox Code Playgroud)
这绝对是我需要的,但是...它根本不起作用:)说我不能在返回子句中使用聚合函数...
有没有什么好方法可以改进两个查询(选择数据的最大/最小值并删除相同的数据)来代替一个查询?任何诡计?
感谢Maxym提供的任何信息