Yuliang-Lee

4/15/2018 - 8:34 AM

collect leetCode's impressive solutions of algorithm problems

Given an integer array, you need to find one **continuous subarray** that if you only sort this subarray in ascending order, then the whole array will be sorted in ascending order, too.

You need to find the **shortest** such subarray and output its length.

Example 1:

```
Input: [2, 6, 4, 8, 10, 9, 15]
Output: 5
Explanation: You need to sort [6, 4, 8, 10, 9] in ascending order to make the whole array sorted in ascending order.
```

**Note:**

- Then length of the input array is in range [1, 10,000].
- The input array may contain duplicates, so ascending order here means <=.

**solution**

Write a program to find the node at which the intersection of two singly linked lists begins.

For example, the following two linked lists:

```
A: a1 → a2
↘
c1 → c2 → c3
↗
B: b1 → b2 → b3
```

begin to intersect at node c1.

Notes:

- If the two linked lists have no intersection at all, return null.
- The linked lists must retain their original structure after the function returns.
- You may assume there are no cycles anywhere in the entire linked structure.
- Your code should preferably run in O(n) time and use only O(1) memory.

**solution**