admin 管理员组文章数量: 1087139
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 == " ":
版权声明:本文标题:剑指offer经典面试题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713704368a647758.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论