27.移除元素
var removeElement = function(nums, val) {
let k = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== val) {
nums[k++] = nums[i]
}
}
return k
}
26.删除有序数组中的重复项
var removeDuplicates = function(nums) {
const n = nums.length;
if (n === 0) return 0;
let fast = 1, slow = 1;
while (fast < n) {
if (nums[fast] !== nums[fast-1]) {
nums[slow++] = nums[fast]
}
fast++
}
return slow
}
283.移动零
var moveZeroes = function(nums) {
const n = nums.length;
let fast = 0, slow = 0;
while (fast < n) {
if (nums[fast] !== 0) {
[nums[fast], nums[slow]] = [nums[slow], nums[fast]];
slow++
}
fast++
}
}
844.比较含退格的字符串
var backspaceCompare = function(s, t) {
let buildAbbr = (s) => {
let fast = 0, slow = 0;
const arr = s.split("");
while (fast < arr.length) {
if (arr[fast] !== "#") arr[slow++] = arr[fast];
else if (slow !== 0) slow--;
fast++;
}
arr.length = slow;
return arr.join("")
}
return buildAbbr(s) === buildAbbr(t)
}
977.有序数组的平方
var sortedSquares = function(nums) {
let newNums = [];
for (let i = 0; i < nums.length; i++) {
newNums.push(nums[i] * nums[i])
}
return newNums.sort((a, b) => a - b)
}
const sortedSquares = function(nums) {
let res = [];
for (let i = 0, j = nums.length -1; i <= j;) {
const left = Math.abs(nums[i]);
const right = Math.abs(nums[j]);
if (right > left) {
res.unshift(right * right);
j--;
} else {
res.unshift(left * left);
i++
}
}
return res;
}