⏰
2024/4/23 leetcode challenge 3day [2665. Counter II]
やった問題
私の回答
type Counter = {
increment: () => number,
decrement: () => number,
reset: () => number,
}
function createCounter(init: number): Counter {
const original = init;
let count = 0
let amount = init
return {
increment:()=>{
count += 1
return amount +=1
},
decrement:()=>{
count -= 1
return amount -= 1
},
reset:()=>{
count = 0
amount = original
return original
}
}
};
/**
* const counter = createCounter(5)
* counter.increment(); // 6
* counter.reset(); // 5
* counter.decrement(); // 4
*/
学び
- 結局count使ってないのに残ってる
- 不要なのは消す
- 引数のinit自体は何回呼び出しても変更されない(当たり前)。
- 自分ができた範囲の最適解は以下だった
type Counter = {
increment: () => number,
decrement: () => number,
reset: () => number,
}
function createCounter(init: number): Counter {
let amount = init
return {
increment:()=>{
return amount +=1
},
decrement:()=>{
return amount -= 1
},
reset:()=>{
amount = init
return init
}
}
};
/**
* const counter = createCounter(5)
* counter.increment(); // 6
* counter.reset(); // 5
* counter.decrement(); // 4
*/
Discussion