请问大家看到这款swa项链吗?# Fashion - 美丽时尚
s*k
1 楼
电面,主要讨论research和工作,出了一道题:
假设一家utility bill company, 分段收取utility,写程序实现charge。
这个题刚开始看起来很简单
if(usage charge = usage*rate1;
}else if(usage> level1 && usage charge = level1*rate1 + (usage-level1)*rate2
然后follow up,能不能优化,分别在time 和space,刚开始就想到hash,不过在build
hash function的时候卡壳了,我想的是hash是一个array,index是最大可能的usage
,然后content是level,比如{level,level,level2,....},usage 1,2 就是level1,
但是问题是usage可能随意并且无穷大,所以space可能很大。当时有点stuck在那里,
后来想到了可以用一个interval tree的变种:
node(14-30)
left(1-13).....right(30-50)
这个方法能做到space O(n), time logn,然后写code构造这个tree从array,花了点时
间。
各位点评下这个tree的方法是不是最好的了,还有啥更好办法没
假设一家utility bill company, 分段收取utility,写程序实现charge。
这个题刚开始看起来很简单
if(usage
}else if(usage> level1 && usage
然后follow up,能不能优化,分别在time 和space,刚开始就想到hash,不过在build
hash function的时候卡壳了,我想的是hash是一个array,index是最大可能的usage
,然后content是level,比如{level,level,level2,....},usage 1,2 就是level1,
但是问题是usage可能随意并且无穷大,所以space可能很大。当时有点stuck在那里,
后来想到了可以用一个interval tree的变种:
node(14-30)
left(1-13).....right(30-50)
这个方法能做到space O(n), time logn,然后写code构造这个tree从array,花了点时
间。
各位点评下这个tree的方法是不是最好的了,还有啥更好办法没