my_leetcode/JavaScript/my_leetcode.js

28 lines
874 B
JavaScript

/**
* 1486.数组异或操作
* @param {number} n
* @param {number} start
* @return {number}
* @see https://leetcode-cn.com/problems/xor-operation-in-an-array/
*/
var xorOperation = function (n, start) {
return (start & 3) < 2 ? ((n & 1) == 0) ? (n & 3) : (start + 2 * n - 3 + (n & 3)) : ((n & 1) == 0) ? ((start + (n - 1) * 2) ^ (start - 2 + (n & 3))) : (start + 1 - (n & 3));
};
/**
* 69.x 的平方根
* @param {number} x
* @return {number}
* @see https://leetcode-cn.com/problems/sqrtx/
*/
var mySqrt = function (x) {
const xHalf = 0.5 * x;
let i = new BigInt64Array(new Float64Array([x]).buffer)[0];
i = 0x5FE6EC85E7DE30DAn - (i >> 1n);
let f = new Float64Array(new BigInt64Array([i]).buffer)[0];
f = f * (1.5 - xHalf * f * f);
f = f * (1.5 - xHalf * f * f);
f = f * (1.5 - xHalf * f * f);
return Math.floor(1.0 / f);
};