3.1.17

上次更新:2019-04-17
发现了题解错误/代码缺陷/排版问题?请点这里:如何:提交反馈

解答

官方实现:https://algs4.cs.princeton.edu/31elementary/BinarySearchST.java.html

先通过二分查找大于等于 key 的键下标 i
如果 keys[i]key 相等则直接返回 keys[i]
否则返回 keys[i-1]

public TKey Floor(TKey key)
{
    if (key == null)
        throw new ArgumentNullException("argument to Floor() is null");
    int i = Rank(key);
    if (i < this.n && this.keys[i].CompareTo(key) == 0)
        return this.keys[i];
    if (i == 0)
        return default(TKey);
    else
        return this.keys[i - 1];
}

另请参阅

SymbolTable 库

上一题 下一题