如何找到 integers/coordinators 的最佳集合,其中第一个坐标和最后一个坐标之间的距离将是可能的最小值?
How to find an optimum set of integers/coordinators where the distance between first and last coordinates will be the MINIMUM possible?
团队,在参考了 Whosebug 上的各种帖子后,我仍然无法确定以下问题的解决方案(有点不同和复杂)
如果您能帮助找到 solution/algorithm(最好是 JAVA),我们将不胜感激。
问题陈述:
考虑一组 N 个组,每个组在一维 space 中有一定数量的点。每个点都由其在一条直线上的坐标表示。
编写一个程序,从每组中准确地选择一个点来形成一个新集合,使得新集合中第一个点和最后一个点之间的距离尽可能小。
输入:
N组整数。
例如:
- [21, 1, 150, 289, -321]
- [160, 3, 30]
- [170, 22, 6, 7]
输出:
新形成的整数集。
例如:
[1, 3, 6]
假设:输入可以是标准内联输入,也可以是一个包含 N 行代表 N 组的文件。 最终输入为N组coordinator-points/integers.
测试用例:
测试 1
测试输入
- 21、1、150、289、-321
- 160、3、30
- 170、22、6、7
预期输出:
1, 3, 6
测试 2
测试输入
- -24, -77, 89, 29, -3
- 187, -99, 1
预期输出:
-3, 1
测试 3
测试输入
- 6、19、95、76、24
- 79、53、2、9、16、91、73
- 81、14、65
- 22、60、37、32、99、71
预期输出:
14、16、19、22
测试 4
测试输入
- -26 7 89 38 83 -90 87 87 59 66 0 81 -51 -45
- -52 23 37 -7 -16 -46 70 21 18 77
- -32 77 -47 -15 86 -5 38
- 64 32 53 78 -90 74 1 51 23 -95 -5 92 10 34 92 -70 37 -8 9 -64
- 4 74 87 -27 66 6 31 49 11 -59 91 98 59 -60 41 58 48 2 -1 90 23 -89 -45 -37 29 22 -66 -87
- 86 -69 0 -36 -43 33 -57 -44 21 28 -51 33 27 -56 43 -29 -33 -46 22 30 50 39 100
- -55 -40 40 30 89 -45 3 -34 -30 16 33 14 -98 -4 54 28 -14 11
预期输出:
37 37 38 38 39 40 41
因此,首先,不要只提供您的任务,让我们为您提供解决方案。这不是 Stack Overflow 的工作方式。
假设您不知道需要做什么,我可以为您提供指导。 (我没有尝试自己编写代码,这只是我想创建的内容)
- (读取输入)
- 找出第一组中的最小值并保存该值
- 做一个循环,从第一组开始,遍历每一组
- 在你的循环中,开始另一个循环,遍历你组中的每个点
- 检查当前点是否等于您从上面保存的值
- 如果是,请转到下一组并将您的值添加到列表中
- 如果不是,将您保存的值加 1 并继续下一点
- 完成两个循环后,打印列表中的值
团队,在参考了 Whosebug 上的各种帖子后,我仍然无法确定以下问题的解决方案(有点不同和复杂)
如果您能帮助找到 solution/algorithm(最好是 JAVA),我们将不胜感激。
问题陈述:
考虑一组 N 个组,每个组在一维 space 中有一定数量的点。每个点都由其在一条直线上的坐标表示。
编写一个程序,从每组中准确地选择一个点来形成一个新集合,使得新集合中第一个点和最后一个点之间的距离尽可能小。
输入: N组整数。
例如:
- [21, 1, 150, 289, -321]
- [160, 3, 30]
- [170, 22, 6, 7]
输出: 新形成的整数集。
例如: [1, 3, 6]
假设:输入可以是标准内联输入,也可以是一个包含 N 行代表 N 组的文件。 最终输入为N组coordinator-points/integers.
测试用例:
测试 1
测试输入
- 21、1、150、289、-321
- 160、3、30
- 170、22、6、7
预期输出: 1, 3, 6
测试 2
测试输入
- -24, -77, 89, 29, -3
- 187, -99, 1
预期输出: -3, 1
测试 3
测试输入
- 6、19、95、76、24
- 79、53、2、9、16、91、73
- 81、14、65
- 22、60、37、32、99、71
预期输出: 14、16、19、22
测试 4
测试输入
- -26 7 89 38 83 -90 87 87 59 66 0 81 -51 -45
- -52 23 37 -7 -16 -46 70 21 18 77
- -32 77 -47 -15 86 -5 38
- 64 32 53 78 -90 74 1 51 23 -95 -5 92 10 34 92 -70 37 -8 9 -64
- 4 74 87 -27 66 6 31 49 11 -59 91 98 59 -60 41 58 48 2 -1 90 23 -89 -45 -37 29 22 -66 -87
- 86 -69 0 -36 -43 33 -57 -44 21 28 -51 33 27 -56 43 -29 -33 -46 22 30 50 39 100
- -55 -40 40 30 89 -45 3 -34 -30 16 33 14 -98 -4 54 28 -14 11
预期输出: 37 37 38 38 39 40 41
因此,首先,不要只提供您的任务,让我们为您提供解决方案。这不是 Stack Overflow 的工作方式。
假设您不知道需要做什么,我可以为您提供指导。 (我没有尝试自己编写代码,这只是我想创建的内容)
- (读取输入)
- 找出第一组中的最小值并保存该值
- 做一个循环,从第一组开始,遍历每一组
- 在你的循环中,开始另一个循环,遍历你组中的每个点
- 检查当前点是否等于您从上面保存的值
- 如果是,请转到下一组并将您的值添加到列表中
- 如果不是,将您保存的值加 1 并继续下一点
- 完成两个循环后,打印列表中的值