剑指Offer刷题(python版)

简介: 牛客网上只支持python 2.7版本,实际和3.0及以上版本有区别。 第一天: 二维数组查找的问题: 解题思路: 例如数组: 1 2 8 9                      2 4 9 12                      4 7 10 13                      6 8 11 15 首先看二维数组中右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则剔除这一列;如果该数字小于要查找的数字,则剔除该数字所在的行。

牛客网上只支持python 2.7版本,实际和3.0及以上版本有区别。

第一天:

二维数组查找的问题:

91e9bb9008ee811726e6cd357074a4c1459dc624







解题思路:

例如数组: 1 2 8 9

                     2 4 9 12

                     4 7 10 13

                     6 8 11 15

首先看二维数组中右上角的数字,如果该数字等于要查找的数字,则查找结束;如果该数字大于要查找的数字,则剔除这一列;如果该数字小于要查找的数字,则剔除该数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围内剔除一行或者一列,每一步都可以缩小范围,直到找到要查找的数字,或者查找范围为空。

例如,要查找7,首先比较7和9,9大于7,则删除第4列;再比较7和8,8大于7,则删除第3列。这时数组为{[1,2],[2,4],[4,7],[6,8]}。再比较2和7,2小于7,则删除第1行;再比较4和7,则删除第二行,再比较7和7,查找完成。


替换字符串问题:

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解题思路:这题用Python来做非常投机取巧,因为为python中字符串操作有replace()这个BIF。所以只需要用20%替换‘ ’就可以。

f1807dc706068c267ede146a88cc857be470cc53                                                                                                                                                                      

相关文章
|
4月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
121 2
|
2月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
23 3
|
2月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
20 0
|
2月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
15 0
|
2月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
12 0
|
4月前
|
Python
【Leetcode刷题Python】50. Pow(x, n)
本文介绍了LeetCode第50题"Pow(x, n)"的解法,题目要求实现计算x的n次幂的函数,文章提供了递归分治法的详细解析和Python实现代码。
28 1
|
4月前
|
Python
【Leetcode刷题Python】LeetCode 478. 在圆内随机生成点
本文介绍了LeetCode 478题的解法,题目要求在给定圆的半径和圆心位置的情况下实现在圆内均匀随机生成点的功能,并提供了Python的实现代码。
34 1
|
4月前
|
算法 Python
【Leetcode刷题Python】73. 矩阵置零
本文介绍了LeetCode第73题的解法,题目要求在给定矩阵中将所有值为0的元素所在的行和列全部置为0,并提供了一种原地算法的Python实现。
34 0
【Leetcode刷题Python】73. 矩阵置零
|
4月前
|
运维 算法 数据挖掘
5个适合新手练习的Python刷题网站
5个适合新手练习的Python刷题网站
|
4月前
|
Python
【Leetcode刷题Python】1467. 两个盒子中球的颜色数相同的概率
本文介绍了LeetCode第50题"Pow(x, n)"的解法,题目要求实现计算x的n次幂的函数,文章提供了递归分治法的详细解析和Python实现代码。
47 0