---
# System prepended metadata

title: Ngày 28/05

---

# Ngày 28/05

### Bài số 1
Input: [1,2,4], [1,3,4,5] 
Output: [1,1,2,3,4,4,5]
```typescript=
function mergeArr(arr1: number[], arr2: number[]): number[] {
    return [...arr1, ...arr2].sort((a,b)=> a-b);
}
```

### Bài số 2
 Input: nums = [1,2,3,4,5,6,7], k = 3
 Output: [5,6,7,1,2,3,4]
 
 Input: nums = [-1,-100,3,99], k = 2
 Output: [3,99,-1,-100]

```typescript=
function reOrderArr(arr: number[], k: number): number[] {
    return [...arr.splice(arr.length-k), ...arr];
}
```
*- Hàm **splice** cắt mảng và loại bỏ phần tử đã cắt ra khỏi mảng cũ*
*- Hàm **slice** cắt mảng và vẫn giữ nguyên các phẩn từ ở mảng cũ*

### Bài số 3
Input: nums = [1,2,3,1]
Output: true

Input: nums = [1,2,3,4]
Output: false

Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true
```typescript=
function checkArr(arr: number[]): boolean {
    return arr.some(x => arr.filter(y => y == x).length>1);
}
```
### Bài số 4
Example 1:
Input: nums = [1,3,5,6], target = 5
Output: 2

Example 2:
Input: nums = [1,3,5,6], target = 2
Output: 1

Example 3:
Input: nums = [1,3,5,6], target = 7
Output: 4
```typescript=
function checkIndex(arr: number[], target: number): number {
    return target >= Math.max(...arr) ? arr.length : 
    arr.findIndex(x =>  target <= x);
}
```
### Bài số 5
Example 1:
Input: nums = [1,2,1,3,2,5]
Output: [3,5]

Example 2:
Input: nums = [-1,0]
Output: [-1,0]

Example 3:
Input: nums = [0,1]
Output: [1,0]
```typescript=
function setArr(arr: number[]): number[] {
    return arr.filter(x => arr.filter(y => y==x).length == 1);
}
```
### Bài số 6
Example 1:
Input: num = 38
Output: 2
Explanation: The process is
*38 --> 3 + 8 --> 11*
*11 --> 1 + 1 --> 2*
Since 2 has only one digit, return it.

Example 2:
Input: num = 0
Output: 0
```typescript=
function processNum(num: number): number {
    while((num + '').length > 1) {
        num = (num + '').split('').map(x => +x).reduce((x, y) => x + y);
    }
    return num;
}
```