189 环状替代 我还以为环状替代很难,认真看了解析发现,和48翻转图像的原地翻转很像。注意循环的次数是k和n的最大公约数。
const gcd = (x, y) => y ? gcd(y, x % y) : x;
var rotate = function(nums, k) {
const n = nums.length;
k = k % n;
let count = gcd(k, n);
for (let start = 0; start < count; ++start) {
let current = start;
let prev = nums[start];
do {
const next = (current + k) % n;
const temp = nums[next];
nums[next] = prev;
prev = temp;
current = next;
} while (start !== current);
}
};
8 状态机,虽然写出来了,但是需要加强理解。
28 KMP算法
剑指Offer 03 二分法
剑指offer 10 大数