这是我的代码。我无法弄清楚为什么它不起作用但是它失败了字符串GF和LH。
private int N; // number of strings in the hash table
private int M; // size of linear probing table
private String[] keys; // the keys
// Returns the minimum string in the table
// Returns null if no such string exists
public String min() {
// TODO
String min = keys[0];
for (int i=0;i<N;i++) {
if (keys[i].compareTo(min) < 0) {
min = keys[i];
}
}
return min;
}
答案 0 :(得分:0)
您可以尝试这样做:使用字符串长度
String arr[] = {"hei", "hvordan","as"};
String minni = Arrays.stream(arr).min((String a,String b)-> Integer.compare(a.length(),b.length())).get();
使用compareTo():
String arr[] = {"hei", "hvordan","as"};
String minni = Arrays.stream(arr).min(String::compareTo).get();
输出: 如
完整方法:
private int N; // number of strings in the hash table
private int M; // size of linear probing table
private String[] keys; // the keys
// Returns the minimum string in the table
// Returns null if no such string exists
String arr[] = {"hei", "hvordan","as"};
public String min() {
String min = Arrays.stream(arr).min(String::compareTo).get();
return min;
}
答案 1 :(得分:0)
将for循环中的N更改为M. M是数组的实际大小,N是项目数。然后你必须考虑一个索引为null的情况,因为它是一个哈希表。祝你好运。