0%

算法-数组

1. 数组中重复的数字(简单)

  • 头脑风暴: 临时数组++

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    func findRepeatNumber(nums []int) int {

    arr := make([]int, len(nums), len(nums))
    for i := 0; i < len(nums); i++{
    arr[nums[i]]++ // 题目说明, <n, 不会越界
    if arr[nums[i]] > 1{
    return nums[i]
    }
    }

    return 0
    }

2. 合并两个有序数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
func merge(nums1 []int, m int, nums2 []int, n int)  {

res := make([]int, 0, m+n)
p1 := 0
p2 := 0
for {
if p1 == m {
res = append(res, nums2[p2:]...)
break
}
if p2 == n {
res = append(res, nums1[p1:]...)
break
}
if nums1[p1] < nums2[p2] {
res = append(res, nums1[p1])
p1++
}else{
res = append(res, nums2[p2])
p2++
}
}

copy(nums1, res)
}
给作者打赏,可以加首页微信,咨询作者相关问题!