28 lines
874 B
JavaScript
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);
|
|
};
|