算法题(2):两个数组的交集

寻找两个有序数组的交集

package main

import "fmt"

func main() {
	nums1 := []int{1, 2, 4, 5}
	nums2 := []int{1, 3, 6, 7}
	fmt.Println(intersect(nums1, nums2))
}

// 找到两个连续数组的交集。
func intersect(nums1 []int, nums2 []int) []int {
	i, j, k := 0, 0, 0
	for i < len(nums1) && j < len(nums2) {
		if nums1[i] > nums2[j] {
			j++
		} else if nums1[i] < nums2[j] {
			i++
		} else {
			nums1[k] = nums1[i]
			i++
			j++
			k++
		}
	}
	return nums1[:k]
}

posted @ 2020-03-05 15:16  leafs99  阅读(164)  评论(0编辑  收藏  举报