please comment the errors
Doubt in the code
Hey @Adhyayan
just a changes
Sort the array
correct code
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int cow = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr); // mera change
int ans = aggrerssicvecows(arr, cow, n);
System.out.println(ans);
}
public static int aggrerssicvecows(int[] arr, int cow, int n) {
int s = 0;
int e = arr[n - 1] - arr[0];
int ans1 = 0;
while (s <= e) {
int mid = (s + e) / 2;
boolean ans = canplace(mid, arr, cow, n);
if (ans) {
ans1 = mid;
s = mid + 1;
} else {
e = mid - 1;
}
}
return ans1;
}
public static boolean canplace(int mid, int[] arr, int cow, int n) {
int c = 1;
int lastindexcowplaced = arr[0];
for (int x = 1; x < n; x++) {
if ((arr[x] - lastindexcowplaced) >= mid) {
lastindexcowplaced = arr[x];
c++;
if (c == cow) {
return true;
}
}
}
return false;
}
}