😃 大家好,我是writer桑,这是自己的一个 Python 做题记录,方便自己学习的同时分享出来。
题目描述:
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例:
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3
代码实现:
class Solution:def findRepeatNumber(self, nums: [int]) -> int:my_set = set()for num in nums:if num in my_set: return nummy_set.add(num)return -1if __name__ == '__main__': s = Solution() nums = [2, 3, 1, 0, 2, 5, 3]print(s.findRepeatNumber(nums))
提交结果:
思路分析:
代码实现2:
from typing import List
from collections import Counterclass Solution:def findRepeatNumber(self, nums: List[int]) -> int:count_nums = Counter(nums) # 使用Counter类列出列表中元素出现的次数sort_nums = sorted(count_nums, key = count_nums.get) # 以元素出现的次数进行升序排序return sort_nums[-1] if __name__ == '__main__': s = Solution() nums = [2, 3, 1, 0, 2, 5, 3]print(s.findRepeatNumber(nums))
提交结果2:
思路分析:
题目描述:
在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
示例:
现有矩阵 matrix 如下:
[
[1, 4, 7, 11, 15],
[2, 5, 8, 12, 19],
[3, 6, 9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30]
]给定 target = 5,返回 true。
给定 target = 20,返回 false。
代码实现:
from typing import Listclass Solution:def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:if len(matrix) == 0 or matrix == None: return Falsei, j = len(matrix) - 1, 0while i >= 0 and j < len(matrix[0]):if matrix[i][j] > target: i -= 1elif matrix[i][j] < target: j += 1else: return Truereturn Falseif __name__ == "__main__": s = Solution() matrix = [[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22], [10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]target = 5print(s.findNumberIn2DArray(matrix, target))
提交结果:
思路分析:
代码实现2:
from typing import Listclass Solution:def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:for arr in matrix:if target in arr:return True return Falseif __name__ == "__main__": s = Solution() matrix = [[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22], [10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]target = 5print(s.findNumberIn2DArray(matrix, target))
提交结果2:
思路分析:
题目实现:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
代码实现:
class Solution:def replaceSpace(self, s: str) -> str:return "%20".join(s.split(' '))if __name__ == "__main__": s = Solution() my_str = "We are happy."print(s.replaceSpace(my_str))
提交结果:
思路分析:
代码实现2:
class Solution:def replaceSpace(self, s: str) -> str:res = []for i in s:if i == ' ':res.append("%20")else: res.append(i) return "".join(res)if __name__ == "__main__":s = Solution()my_str = "We are happy." print(s.replaceSpace(my_str))
提交结果2:
思路分析:
🌻 以上就是本次的做题记录啦,希望大家看完有所收获。