Этот вопрос был задан мне в онлайн -тесте.
Есть n точек в картезианском самолете. Показано целое число k. Любые точки, лежащие по бокам, не считаются внутри квадрата. static int minarea(int[] x, int[] y, int k) {
//Find max y
int maxVal = Integer.MIN_VALUE;
for(int i : y){
if(i > maxVal){
maxVal = i;
}
}
//Find min y
int minVal = Integer.MAX_VALUE;
for(int i : x){
if(i < minVal){
minVal = i;
}
}
int yLength = (maxVal-minVal)+2;
//Find max x
maxVal = Integer.MIN_VALUE;
for(int i : x){
if(i > maxVal){
maxVal = i;
}
}
//Find min x
minVal = Integer.MAX_VALUE;
for(int i : x){
if(i < minVal){
minVal = i;
}
}
int xLength = (maxVal-minVal)+2;
int sqSide = (yLength > xLength)?yLength:xLength;
return sqSide*sqSide;
}
< /code>
Одним из подходов к общему решению было бы найти всю возможную комбинацию k точек между n точками и применение вышеуказанного метода для всех комбинаций, но это не очень хорошо. Пожалуйста, посоветуйте.
Подробнее здесь: https://stackoverflow.com/questions/309 ... n-n-points
Квадрат с минимальной площадью, окружающей k точек между данными n точками ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Квадрат минимальной площади, охватывающий K точек среди заданных N точек
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Квадрат минимальной площади, охватывающий K точек среди заданных N точек
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-