一、手写算法
https://leetcode-cn.com/problems/implement-queue-using-stacks/
思路
/**
- @param {number} x
- @return {void} */ MyQueue.prototype.push = function(x) { this.queue[this.len] = x; this.len++; };
/**
- @return {number} */ MyQueue.prototype.pop = function() { if(this.len > 0){ var a = this.queue.shift(); this.len—; return a; }else{ return -1 } };
/**
- @return {number} */ MyQueue.prototype.peek = function() { if(this.len > 0){ return this.queue[0]; }else{ return -1 } };
/**
- @return {boolean} */ MyQueue.prototype.empty = function() { return this.queue.length === 0 ? true :false };
/**
- Your MyQueue object will be instantiated and called as such:
- var obj = new MyQueue()
- obj.push(x)
- var param_2 = obj.pop()
- var param_3 = obj.peek()
- var param_4 = obj.empty()
*/
```
复杂度分析
- 时间复杂度:
- 空间复杂度:
二、编程题
// 手写题:https://bigfrontend.dev/zh/problem/the-angle-between-hour-hand-and-minute-hand-of-a-clock
/*** Second* @param {string} time* @returns {number}*/function angle(time) {// your code herelet [hours, minus] = time.split(':');let hourAngle = (360 / 12) * (hours % 12);// 小时每大格度数 * 小时 (% 12 ,24小时制)let minusAngle = (360 / 12 / 5) * minus;// 分钟每格角度*分钟let pyAngle = (30 / 60) * minus;// 时分偏移量 30度 * x = 60分(x是每走一分钟,小时的偏移量)let angle = Math.abs(hourAngle + pyAngle - minusAngle);/求夹角return Math.round(Math.min(angle, 360 - angle));// 最大为180度,求小角,并四舍五入}/*** First* @param {string} time* @returns {number}*/function angle(time){var a = time.split(':');if(a[0] === '12' && a[1] === '00'){var b = a[1] * 6 === 0 ? a[1] * 6 :Math.abs((a[0] > 12 ? a[0] - 12 : a[0] )* 30 + 0.5 * a[1] - a[1] * 6)}else{if(a[0] === '12' && Number(a[1]) > 30){var b = Math.round(Math.abs(a[0]> 12 ? a[0] - 12 : a[0] * 30 + 0.5 * a[1] - a[1] * 6) )}else{var b = Math.abs(Math.abs((a[0] >= 12 ? a[0] - 12 : a[0]) * 30 + 0.5 * Number(a[1])) - Math.abs(a[1] * 6))if(b>180){b = Math.round(360-b)}else{b=Math.round(b)}}}return b}
