var maxProfit = function(prices) { let min = prices[0] let res = 0 for(let i = 1; i<prices.length; i++) { min = Math.min(min, prices[i]) res = Math.max(res, prices[i] - min) } return res};
var majorityElement = function(nums) { let count = 1 let res = nums[0] for(let i = 1; i < nums.length; i++) { if(count === 0 && res !== nums[i]) { res = nums[i] } res !== nums[i] ? count-- : count++ } return res};
var containsDuplicate = function(nums) { let set = new Set() for(let num of nums) { if(set.has(num)) { return true } else { set.add(num) } } return false};
var threeSum = function (nums) { let res = [] nums.sort((a, b) => a - b) let len = nums.length for (let i = 0; i < len-2; i++) { if(nums[i]>0) break if(i>0 &&nums[i] ===nums[i-1]) continue let left = i + 1, right = len - 1 while (left < right) { let count = nums[i] + nums[left] + nums[right] if (count === 0) { res.push([nums[i], nums[left], nums[right]]) while(left < right && nums[left] === nums[left+1]) left++ while(left < right && nums[right] === nums[right-1]) right-- left++ right-- } else if(count > 0) { right-- } else { left++ } } } return res};
var productExceptSelf = function (nums) { const len = nums.length const res = new Array(len).fill(1) let left = 1 let right = 1 for (let i = 0; i < len; i++) { res[i] *= left left *= nums[i] res[len - 1 - i] *= right right *= nums[len - 1 - i] } return res};