Categories

## 56. Merge Intervals Leetcode Javascript Solution

The Problem:

Given an array of `intervals` where `intervals[i] = [starti, endi]`, merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.

Example 1:

```Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
```

Example 2:

```Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.
```

Constraints:

• `1 <= intervals.length <= 104`
• `intervals[i].length == 2`
• `0 <= starti <= endi <= 104`

The Problem:

```var merge = function(intervals) {
if(intervals.length == 1 || intervals.length == 0){ return intervals}
intervals.sort((a,b) => a !== b ? a-b : a-b)
// console.log(intervals)
let ans = [], prev = intervals
ans.push(prev)
for(let interval of intervals){
// console.log(prev)
if(interval <= prev){
prev = Math.max(interval, prev)
//prev = interval (remember not to update prev in this if
} else {
ans.push(interval)
prev = interval
}
// console.log(ans)
}
return ans
};```
Categories

## 41. First Missing Positive Leetcode Javascript Solution

The Problem:

Given an unsorted integer array `nums`, find the smallest missing positive integer.

Example 1:

```Input: nums = [1,2,0]
Output: 3
```

Example 2:

```Input: nums = [3,4,-1,1]
Output: 2
```

Example 3:

```Input: nums = [7,8,9,11,12]
Output: 1
```

Constraints:

• `0 <= nums.length <= 300`
• `-231 <= nums[i] <= 231 - 1`

The Solution:

```var firstMissingPositive = function(nums) {
if(nums.length == 0) return 1
let ans = 999999, changed = false
nums.sort((a,b) => a-b)
if(nums > 1  || nums[nums.length-1] < 0){
return 1
}
//console.log(nums)
for(let i = 0; i < nums.length-1; i++){
if(nums[i] >= 0){
let diff = nums[i+1] - nums[i]
//console.log(diff)
if( diff > 1){
ans = Math.min(ans, nums[i] + 1)
//console.log("max " + ans)
changed =true
}
} else {
if(nums[i +1] > 1 && nums[i] < 0){
return 1
}
}
}
if(changed == false){
ans = nums[nums.length-1] + 1
}
return ans
};```