ARTS-2025week14

2025年的ARTS

Algorithm 算法

  1. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2 输出: -1 解释: 2 不存在 nums 中因此返回 -1

【思路】 这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,那么结果就不是唯一。二分法的前提需要注意。

递归函数,二分查找。 先找出数组的中间值,然后判断大小,继续找中间值,判断大小。 判读结束条件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

def search(nums, target):
    left, right = 0, len(nums) - 1
    while left <= right:
        mid = (left + right) // 2
        if nums[mid] == target:
            return mid
        elif nums[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1
 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
26
27
28
29
30
31
package main

import "fmt"

func search(nums []int, target int) int {
	left := 0
	right := len(nums) - 1

	for left <= right {
		mid := left + (right-left)/2 // 防止整数溢出
		if nums[mid] == target {
			return mid
		} else if nums[mid] < target {
			left = mid + 1
		} else {
			right = mid - 1
		}
	}
	return -1
}

func main() {
	nums := []int{-1, 0, 3, 5, 9, 12}
	target := 9
	result := search(nums, target)
	fmt.Printf("Target %d found at index: %d\n", target, result) // 输出 4

	target = 2
	result = search(nums, target)
	fmt.Printf("Target %d found at index: %d\n", target, result) // 输出 -1
}

Review 复审(英语)

Tip 小技巧

考了一个无人机的证书,可以抵税,分享一下大概的攻略

考试网址及流程

相关题库内容

Share 技术分享

cs 自学指南

那些你不知道的TCP冷门知识

我们高估了智力的重要性

深入理解四种经典负载均衡算法

TODO

  1. cs相关的专业知识
comments powered by Disqus
记录自己
Built with Hugo
主题 StackJimmy 设计