admin 管理员组

文章数量: 1086019


2024年4月21日发(作者:constellation歌曲far out)

剑指offer经典面试题

剑指offer是指针对求职者的一系列经典面试题目,该题目旨在考

察面试者的技术能力、解决问题的思路和编程实践经验等。下面将分

别介绍几道经典的剑指offer面试题,并以相关代码和解析进行说明。

1. 二维数组中的查找

题目描述:在一个二维数组中,每一行从左到右递增,每一列从上

到下递增。请完成一个函数,输入该二维数组和一个整数,判断数组

中是否含有该整数。

解析:该题可以利用二维数组的特点,从右上角或左下角开始寻找。

如果当前元素大于目标值,则消去一列;如果当前元素小于目标值,

则消去一行。通过这样的方式,可以在O(m+n)的时间复杂度内找到目

标值。

```python

def find_in_matrix(matrix, target):

if not matrix:

return False

rows, cols = len(matrix), len(matrix[0])

row, col = 0, cols - 1

while row < rows and col >= 0:

if matrix[row][col] == target:

return True

elif matrix[row][col] > target:

col -= 1

else:

row += 1

return False

```

2. 替换空格

题目描述:请实现一个函数,将字符串中的每个空格替换成"%20"。

解析:该题可以先遍历字符串,统计空格的个数,然后根据空格的

个数计算出替换后的字符串的长度。然后从后向前遍历字符串,将字

符逐个放入新的字符串中,遇到空格则替换为"%20"。

```python

def replace_space(s):

if not s:

return ""

space_count = 0

for char in s:

if char == " ":


本文标签: 字符串 数组 题目 空格 目标值