Files
algorithms/lib/intersectionSortedArray/readme.md
T

111 lines
2.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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;
};
```