1.访问所有点的最小时间
题目:
平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。
你可以按照下面的规则在平面上移动:
每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。
必须按照数组中出现的顺序来访问这些点。
思路:因为左移、右移、对角线移动都是耗时1,所以计算两个点之间的x、y方向的距离累加即可
/**
* @param {number[][]} points
* @return {number}
*/
var minTimeToVisitAllPoints = function(points) {
let v = 0;
const l = points.length;
if (l < 2) return v;
for (let i = 1; i < l; i++) {
let x = Math.abs(points[i][0] - points[i - 1][0]);
let y = Math.abs(points[i][1] - points[i - 1][1]);
const temp = Math.min(x, y) + Math.abs(x - y);
v += temp;
}
return v;
};
2.找出井字棋的获胜者
题目:
A 和 B 在一个 3 x 3 的网格上玩井字棋。
井字棋游戏的规则如下:
玩家轮流将棋子放在空方格 (" ")