[HAI] week3 intersection array
https://www.interviewbit.com/problems/intersection-of-sorted-arrays/
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
## 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;
|
||||
};
|
||||
```
|
||||
Reference in New Issue
Block a user