我有一个这样的数组:
const array = ['Monthly', 'Annually', 'Quarterly', 'Annually', 'Quarterly', 'Monthly'];
删除重复项后,我应该得到一个这样的数组:
const array = ['Monthly', 'Annually', 'Quarterly'];
现在我应该得到最短的时间。我曾想过将每个字符串与一个数字相关联,从而以这种方式转换数组:
const array = [{name:'Monthly', order:1}, {name:'Annually',order:3}, {name:'Quarterly',order:2}];
然后根据订单计算最小值。
您是否有其他建议来改进算法?可以改进吗?
答案 0 :(得分:1)
一个小改进:
删除重复项是多余的,因为它需要O(n)
空间或O(nlogn)
时间,因为它是element distinctness problem的变体,而查找最小值可以在{{1}中完成时间和O(n)
空间。
另外,不确定你的"命令"确切地说,如果它是在编译/预处理时计算过的并且是常量的,那么只要你不为每个查询排序列表就可以了