27. 移除元素
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
let slowIdx=0,fastIdx
for(fastIdx=0;fastIdx<nums.length;fastIdx++){
if(nums[fastIdx]!==val){
nums[slowIdx++]=nums[fastIdx]
}
}
return slowIdx
};
26. 删除有序数组中的重复项
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
let slowIdx = 1, fastIdx = 1
while(fastIdx<nums.length){
if(nums[fastIdx]!==nums[fastIdx-1]){
nums[slowIdx++]=nums[fastIdx]
}
fastIdx++
}
return slowIdx
};
283. 移动零
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function(nums) {
let fastIdx=0,slowIdx=0
for(;fastIdx<nums.length;fastIdx++){
var swap
if(nums[slowIdx]===0&&nums[fastIdx]!==0){
swap = nums[fastIdx]
nums[fastIdx] = nums[slowIdx]
nums[slowIdx] = swap
slowIdx++
}
else if(nums[slowIdx]!==0){slowIdx++}
}
return nums
};
844. 比较含退格的字符串
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var backspaceCompare = function(s, t) {
function toStr(s){
let after =''
let skipnum = ''
for(let i = s.length-1;i>=0;i--){
if(s[i]==='#') skipnum++
else if(skipnum>0) skipnum--
else after+=s[i]
}
return after
}
if(toStr(s)===toStr(t)) return true
return false
};
977. 有序数组的平方
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortedSquares = function(nums) {
let number = []
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){
number.unshift(right*right)
j--
}else {
number.unshift(left*left)
i++
}
}
return number
};