【LeetCode题目记录-4】插入数组间隔问题

Insert Interval

Given a set of non-overlapping intervals,
insert a new interval into the intervals (merge if necessary).

You may assume that the intervals were initially sorted according to their start times.

Example 1:

Given intervals [1,3],[6,9],
insert and merge [2,5] in
as [1,5],[6,9].

Example 2:

Given [1,2],[3,5],[6,7],[8,10],[12,16],
insert and merge [4,9] in
as [1,2],[3,10],[12,16].

This is because the new interval [4,9] overlaps
with [3,5],[6,7],[8,10].

【分析-非原创】

参考:https://oj.leetcode.com/discuss/3971/in-place-solution-ask-for-suggestion

public static List<Interval> insert(List<Interval> intervals,
Interval newInterval) {

List<Interval> list=new ArrayList<Interval>();

for(int i=0;i<intervals.size();i++){

/*只要在newInterval左边的都直接加入到list*/

if(newInterval.start>intervals.get(i).end){

list.add(intervals.get(i));

/*只要在newInterval在的右边,就将newInterval加入list,同时将右边这个当做newInterval*/

}else if(newInterval.end<intervals.get(i).start){

list.add(newInterval);

newInterval=intervals.get(i);

}else{

/*获取新的newInterval*/

newInterval.start=Math.min(newInterval.start,intervals.get(i).start);

newInterval.end=Math.max(newInterval.end,intervals.get(i).end);

}

}

list.add(newInterval);

return list;

}

时间: 2025-01-17 22:33:53

【LeetCode题目记录-4】插入数组间隔问题的相关文章

【LeetCode题目记录-10】已排序的数组去除重复元素

Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory.

【LeetCode题目记录-9】排序后的数组生成平衡的二叉搜索树

Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending order, convert it to a height balanced BST. [分析1-原创]中间值作为根节点,左边的中间值作为左孩子,右边的中间值作为右孩子.一直递归探底即可. /** * Definition for binary tree * public class TreeNode {

【LeetCode题目记录-13】二分搜索排序后的二维数组

Search a 2D Matrix Writean efficient algorithm that searches for a value in an m x n matrix.This matrix has the following properties: Integers in each row are sorted from left to right. The first integer of each row is greater than the last integer o

【LeetCode题目记录-7】为完全二叉树添加层指针

Populating Next Right Pointers in Each Node Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } Populate each next pointer to point to its next right node. If there is no next right node, the next

Leetcode题目34.在排序数组中查找元素的第一个和最后一个位置(中等)

题目描述: 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [-1, -1]. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2: 输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1] 题目解析: 方法 1:线性扫描 对 target 检查每

【LeetCode题目记录-2】从前序遍历和中序遍历构建二叉树

Construct Binary Tree from Preorder and Inorder Traversal Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. [分析1-非原创]递归调用. 参考:http://bylijinnan.iteye.com/blog/135

【LeetCode题目记录-5】二叉树是否相同

Same Tree Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value. [分析1-原创]递归判断 /** * Definition for binary tree * public c

【LeetCode题目记录-11】判断二叉树是否是镜像的(对称的)

Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this binary tree is symmetric:     1    / \   2   2 / \ / \ 3  4 4  3 But the following is not:     1    / \   2   2    \   \  

【LeetCode题目记录-6】1~n作为key可以有多少种二叉搜索树(BST)的形式

Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example, Given n = 3, there are a total of 5 unique BST's. 1         3     3      2      1 \       /     /      / \      \ 3