Skip to main content

2460.js

/** ------------------------------------------------------------------------------
*
* 2460. Apply Operations to an Array
* Topics: Array, Two Pointers
* https://leetcode.com/problems/apply-operations-to-an-array/description/
*
------------------------------------------------------------------------------ */
/**
* @param {number[]} nums
* @return {number[]}
*/
var applyOperations = function (nums) {
for (let i = 0; i < nums.length - 1; i++) {
if (nums[i] === nums[i + 1]) {
nums[i] = nums[i] * 2
nums[i + 1] = 0
}
}

let pointer = 0
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== 0) {
// let temp = nums[i]
// nums[i] = nums[pointer]
// nums[pointer] = temp
;[nums[pointer], nums[i]] = [nums[i], nums[pointer]]
pointer++
}
}

return nums
}

console.log(applyOperations([1, 2, 2, 1, 1, 0]))