- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定一组名为 S 的点和一个点 P。如何在集合 S 中找到三个点,s.t 这三个点可以形成三角形 T 并且 P 在三角形 T 中且时间复杂度最低?
任何编程语言都可以。伪代码也很好。
非常感谢!
最佳答案
在三角形内画一个点,然后从该点到角绘制直线。您应该看到这些线之间的角度都小于 180 度,并且当点移动到三角形之外时,其中一条线之间的角度在穿过三角形的一侧时达到 180 度。
因此,如果您将点视为 map 上的点,则将罗盘方位从 P 到其他每个点,然后对结果进行排序。如果排序后的值之间存在大于或等于 180 度的间隙(包括从 360 到 0 的环绕),则 P 不在任何三角形内。
假设测试通过,考虑根据圆盘方位在圆上布置的所有点,然后选择一个任意点并在该点绘制通过圆的直径,将其一分为二。该直径的任一侧必须有其他点,否则我们将有 180 的间隙。在每一半中选择距离任意点最远的两个点。如果它们 >= 180 度,我们就有 180 度的差距。如果不是,则所有点彼此都在 180 度以内,并且我们有三个点包围原始点。
这个的复杂度是 O(n log n),这对我来说似乎是合理的,但不一定是平均情况下最快的,尽管我怀疑它的最坏情况是合理的。根据您的数据及其呈现方式,可能会出现加速,这涉及首先随机选择少量点,希望它们包含一个包围 P 的三角形。
关于关于如何找到三个点的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42825337/
我很困惑 ...作品。 tt = function(...) { return(x) } 为什么不tt(x = 2)返回 2 ? 相反,它因错误而失败: Error in tt(x = 2) :
展开运算符是否具有异常功能?喜欢: originalObject = { key1: '', key2: '', key3: '' } const clonedOr
这个问题在这里已经有了答案: text-overflow is not working when using display:flex (5 个答案) 关闭 3 年前。
我的问题是,为什么“text-overflow:ellipsis;”对我不起作用?我的页面上有表格,我想缩短单元格 (td) 中的一些文本。如您所见,我在 css 中没有宽度参数。我从 json 获取
不幸的是,我无法为 EditText 作品制作椭圆大小。当文本太长时,甚至可以在文本末尾放置三个点吗?它适用于 TextiView 但不适用于 EditText。有什么想法吗? android:id
这个问题在这里已经有了答案: What do 3 dots next to a parameter type mean in Java? (9 个回答) 关闭 6 年前。 三个点(...)在方法定义
我想使额外的文本成为三个点 (...) 省略号,当我单击这些点时,文本应该展开和收缩。但是使用代码时,文本只会收缩,不会在点击点时展开 .overflow{ display:inline
我不想在我的视频中显示播放速度,是否有任何控件或 controlList禁用该选项的属性,如 controls disablepictureinpicture controlslist="nodown
我需要从提示文本中删除省略号(三个点)并希望显示完整的文本。我正在使用 TextInputLayout 小部件。 向 TextInputEditText 添加 ellipsize 属性不起作用。 下面
我刚刚开始学习 Android,在应用中创建菜单时遇到了一些麻烦。 我尝试了所有选项来创建菜单,但没有一个适合我。 当我运行模拟器或真实设备菜单时没有出现。我试过“Ctrl+M”和不同的设备,但它不起
在 Javascript 中阅读这个语法真的让我感到困惑: router.route('/:id') .put((...args) => controller.update(...args)) .ge
我正在查看 jQuery 的 jScroll 插件的文档页面 (http://demos.flesler.com/jquery/scrollTo),我注意到了这一点: $(...).scrollTo(
我想把图标染成白色。 这是工具栏: 还有样式: @color/primary @color/primaryDark @color/accent @color/ba
这似乎是一个愚蠢的问题,但是当我尝试在 SOF 中查看这个答案时, Compile time generated tables 我注意到这样的陈述: template constexpr auto m
我是否使用 androidx.compose.foundation.text.BasicText或 androidx.compose.material.Text ,如果没有足够的空间放置文本,它将换行
我有一个带有 的 Xamarin.Forms UWP 应用程序用两个 toolbarItem 定义。在 UWP 中,此工具栏呈现但显示一个带有 3 个点的额外(或默认)按钮,该按钮展开但不包含任何按
如问题中所述,我正在尝试使用从 MySQL 的文本字段读取数据的 PHP 生成 XML 输出(用于 iPhone 应用程序)。 每当字段中出现水平省略号时... XML 生成不正确。 我已经尝试了几种
实际问题 是否可以为 的一组签名参数定义方法?包括 ... (相对于 专门 用于 ... )? “开箱即用”是不可能的,但理论上它会是 完全有可能 (涉及一些调整)或者这是由于 S4 机制的设计方式而
我想调用一个使用 ...(省略号)参数的 R 函数来支持未定义数量的参数: f f(1, a = 1, b = 2) [1] "a=1, b=2" 如何为 ... 传递我只在运行时知道的实际参数(例
假设我有两个分支,master 和 feature。 目标是在 Github 上以可视化方式查看 master 和 feature 之间的全部差异。默认情况下这是不可能的,因为 Github 使用 g
我是一名优秀的程序员,十分优秀!