2149. 按符号重排数组
思路:可以把正负数取出,重建一个数组,也可双指针交换位置。
var rearrangeArray = function (nums) {
var arr1 = [], arr2 = [];
for (let i = 0; i < nums.length; i++) {
if (nums[i] > 0) {
arr1.push(nums[i]);
} else {
arr2.push(nums[i]);
}
}
let result = [];
for (let i = 0; i < arr1.length; i++) {
result.push(arr1[i]);
result.push(arr2[i]);
}
return result;
};
2150. 找出数组中的所有孤独数字
思路:先计数,再判断,set是为了过滤已经筛选过的数字,直接用map判断也可。
var findLonely = function (nums) {
let map = new Map(), res = [], set = new Set();
nums.forEach(i => {
map.set(i, map.has(i) ? map.get(i) + 1 : 1);
});
let key = map.keys();
for (let i of key) {
if (map.get(i) == 1) {
if (!set.has(i)) {
if (map.has(i - 1)) {
set.add(i - 1);
set.add(i);
} else if (map.has(i + 1)) {
set.add(i + 1);
set.add(i);
} else {
res.push(i);
}
}
}
}
return res;
};