|
|
## hai-week-3-intersection-array
|
|
|
|
|
|
## описание задачи
|
|
|
|
|
|
Find the intersection of two **sorted** arrays **OR** in other words, given 2 sorted arrays, find all the elements which occur in both arrays.
|
|
|
|
|
|
**NOTE:** For the purpose of this problem ( as also conveyed by the sample case ), assume that elements that appear more than once in both arrays should be included multiple times in the final output.
|
|
|
|
|
|
|
|
|
|
|
|
**Problem Constraints**
|
|
|
|
|
|
1 <= **|A|** <= 106
|
|
|
1 <= **|B|** <= 106
|
|
|
|
|
|
|
|
|
|
|
|
**Input Format**
|
|
|
|
|
|
The first argument is an integer array A.
|
|
|
The second argument is an integer array B.
|
|
|
|
|
|
|
|
|
|
|
|
**Output Format**
|
|
|
|
|
|
Return an array of intersection of the two arrays.
|
|
|
|
|
|
|
|
|
|
|
|
**Example Input**
|
|
|
|
|
|
**Input 1**:
|
|
|
**A**: [1 2 3 3 4 5 6]
|
|
|
**B**: [3 3 5]
|
|
|
|
|
|
**Input 2**:
|
|
|
**A**: [1 2 3 3 4 5 6]
|
|
|
**B**: [3 5]
|
|
|
|
|
|
|
|
|
|
|
|
**Example Output**
|
|
|
|
|
|
**Output 1**: [3 3 5]
|
|
|
|
|
|
**Output 2**: [3 5]
|
|
|
|
|
|
|
|
|
|
|
|
**Example Explanation**
|
|
|
|
|
|
Explanation 1:
|
|
|
|
|
|
3, 3, 5 occurs in both the arrays A and B
|
|
|
|
|
|
Explanation 2:
|
|
|
|
|
|
Only 3 and 5 occurs in both the arrays A and B
|
|
|
|
|
|
## тест кейсы
|
|
|
|
|
|
## текстовое описание решения
|
|
|
|
|
|
## ассимптотическая оценка
|
|
|
|
|
|
| Description | Estimation |
|
|
|
| ----------- | ------------- |
|
|
|
| time: | `O(n+m)` |
|
|
|
| mem: | `O(min(n,m))` |
|
|
|
|
|
|
## time
|
|
|
|
|
|
| Description | Time |
|
|
|
| ------------------------------------------- | ----- |
|
|
|
| анализ и сбор информации | 14:20 |
|
|
|
| обдумываение решения и формулировка решения | 25:30 |
|
|
|
| имплементация | 06:10 |
|
|
|
| исправление ошибок | 06:12 |
|
|
|
| полное время затраченое на решение | 51:14 |
|
|
|
## журнал ошибок
|
|
|
|
|
|
- условие окончание цикла поставил `||` вместо `&&`
|
|
|
- двигал указатели каждый и после условия равенства и после проверки большего меньшего, вы нес проверку в исключающуся ветвь else
|
|
|
## code
|
|
|
|
|
|
### typescript
|
|
|
|
|
|
```ts
|
|
|
export function intersectionSortedArray(a: number[], b: number[]): number[] {
|
|
|
let res: number[] = [];
|
|
|
let aI = 0;
|
|
|
let bI = 0;
|
|
|
|
|
|
while (aI < a.length && bI < b.length) {
|
|
|
let aValue = a[aI];
|
|
|
let bValue = b[bI];
|
|
|
|
|
|
if (aValue === bValue) {
|
|
|
res.push(aValue);
|
|
|
aI++;
|
|
|
bI++;
|
|
|
} else {
|
|
|
aValue < bValue ? aI++ : bI++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return res;
|
|
|
};
|
|
|
```
|