中级农民
- 积分
- 102
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2016-4-13
- 最后登录
- 1970-1-1
|
关于 task cooldown 那道题,我的思路是直接在已经排好的 tasks 里往回看跟 cooldown 相同个数的 tasks,这样就可以知道要插几个空格了。空间复杂度是 O(1),时间最坏是 O(totalTasksNumber * cooldown),这样 cooldown 很小的时候时间基本是线性的。不知道各位大牛看我这个思路对不对?
- function taskCooldown(tasks, cooldown) {
- let result = '';
- for (let i = 0; i < tasks.length; i += 1) {
- let l = 0;
- while (l < cooldown) {
- if (i - l < 0) {
- l = cooldown;
- break;
- } else if (result[result.length-1-l] == tasks[i]) {
- break;
- }
- l += 1;
- }
- result += '_'.repeat(cooldown - l) + tasks[i];
- }
- return result;
- }
复制代码
补充内容 (2016-8-1 09:52):
我好像把这个做一道类似的题了,要求是返回类似 1,_,_,1,2,_,1 个结果 |
|