220. 存在重复元素 III
var containsNearbyAlmostDuplicate = function(nums, k, t) { // 索引数组let n = nums.length;let indexArr = nums.map((item, index) => index);indexArr.sort((i_a, i_b) => nums[i_a] - nums[i_b]);for (let i = 0; i < n; i++) {for (let j = i + 1; j < n; j++) {if ((Math.abs(nums[indexArr[i]] - nums[indexArr[j]]) <= t) && (Math.abs(indexArr[i] - indexArr[j]) <= k)) {return true;}}}return false;};
测试:
containsNearbyAlmostDuplicate([1,5,9,1,5,9], 2, 3);
870. Advantage Shuffle
索引数组有点绕,总是不清楚。
var advantageCount = function(nums1, nums2) {let n = nums1.length;nums1.sort((a, b) => a - b);let indexB = new Array(n).fill(0).map((v, i) => i);indexB.sort((a, b) => nums2[a] - nums2[b]);let ans = new Array(n).fill(0);let i = 0;let j = 0;let k = n - 1;while (i < n) {if (nums1[i] > nums2[indexB[j]]) {ans[indexB[j]] = nums1[i];i++;j++;} else {ans[indexB[k]] = nums1[i];k--;i++;}}return ans;};
