问一下APY怎么算的# Money - 海外理财
j*l
1 楼
这里总结一下,对很多基本二分查找的变体题目,比如找rotated的有序数组的reset
point (pivot),比如返回相同元素的连续段的第一个或者最后一个,我们可以考虑如
下思路。
如果我们让while处理三个元素(含)以上的情形,边界情况的困难往往就被消除了
然后while外头处理两个元素或一个元素的情形是很容易的
while (high - low > 1)
{
// 处理至少三个元素,无需边界处理
}
// 处理至多两个元素
当然,我发过相关的帖子,如果你遇到固执的面试官,不理解你为何那样处理,非要
很隐晦地暗示你必须采用如下的传统处理(最适用基本二分查找,因为几乎没有边界处
理)
while (low <= high)
{
// 一堆容易出错的边界处理
}
那也只能顺其所好,考虑周全,好好把while里头各种边界情况写好吧。否则面完后被
拒不说,还被背地里扣上不能很好follow面试官的suggestion的帽子。
point (pivot),比如返回相同元素的连续段的第一个或者最后一个,我们可以考虑如
下思路。
如果我们让while处理三个元素(含)以上的情形,边界情况的困难往往就被消除了
然后while外头处理两个元素或一个元素的情形是很容易的
while (high - low > 1)
{
// 处理至少三个元素,无需边界处理
}
// 处理至多两个元素
当然,我发过相关的帖子,如果你遇到固执的面试官,不理解你为何那样处理,非要
很隐晦地暗示你必须采用如下的传统处理(最适用基本二分查找,因为几乎没有边界处
理)
while (low <= high)
{
// 一堆容易出错的边界处理
}
那也只能顺其所好,考虑周全,好好把while里头各种边界情况写好吧。否则面完后被
拒不说,还被背地里扣上不能很好follow面试官的suggestion的帽子。