You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
2.5 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 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;
};
```