假设我们有一些点,以及一个整数 k。我们需要找到一个以 (0, 0) 为中心的圆的最小半径,以覆盖 k 个点。因此,如果点像 (1, 1)、(-1, -1)、(1, -1),并且 k = 3,则半径将为 2。在这里,我们将找到每个点与 (0, 0) 之间的欧几里得距离,然后对距离进行排序,并在排序后返回第 k 个元素。示例 实时演示#include #include using namespace std; struct point{ int x, y; }; int minRadius(int k, point points[], int n) { int dist[n]; for (int i = ... 阅读更多
假设我们有一个包含 n 个元素的数组。我们需要找到数组中的第一个、第二个和第三个最小元素。第一个最小值是数组的最小值,第二个最小值是大于第一个最小值的最小值,依此类推,第三个最小值是大于第二个最小值的最小值。扫描每个元素,然后检查元素,并关联第一个、第二个和第三个最小元素条件来解决此问题。示例#include using namespace std; int getThreeMins(int arr[], int n) { int first = INT_MAX, sec = INT_MAX, third = INT_MAX; for (int i ... 阅读更多