# 编程题

  1. 实现冒泡排序
class Solution:
    # 定义一个名为 sortArray 的方法,接受一个整数列表 nums,返回一个排序后的整数列表
    def sortArray(self, nums: List[int]) -> List[int]:
        # 定义冒泡排序的函数
        def bubbleSort(nums):
            # 获取列表的长度
            n = len(nums)
            # 外层循环控制需要比较的轮数,每轮将当前最大的元素移动到末尾
            for i in range(n - 1):
                # 内层循环控制每轮比较的次数
                for j in range(n - i - 1):
                    # 如果当前元素大于下一个元素,交换它们的位置
                    if nums[j] > nums[j + 1]:
                        nums[j], nums[j + 1] = nums[j + 1], nums[j]
            
            # 返回排序后的列表
            return nums
        # 调用冒泡排序函数并返回结果
        return bubbleSort(nums)

https://leetcode.cn/problems/sort-an-array/description/

  1. 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

class Solution:
    # 定义一个名为 searchMatrix 的方法,接受一个二维数组 matrix 和一个整数 target,返回一个布尔值
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        # 获取二维数组的行数和列数
        m, n = len(matrix), len(matrix[0])
        # 初始化起始搜索位置为二维数组的左下角
        row, col = m - 1, 0
        
        # 使用循环进行搜索,直到搜索越界或找到目标值
        while row >= 0 and col < n:
            # 如果当前元素大于目标值,向上移动一行
            if matrix[row][col] > target:
                row -= 1
            # 如果当前元素小于目标值,向右移动一列
            elif matrix[row][col] < target:
                col += 1
            # 如果当前元素等于目标值,返回 True
            else:
                return True
        
        # 如果循环结束仍未找到目标值,返回 False
        return False

https://leetcode.cn/problems/search-a-2d-matrix-ii/description/
https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf

  1. 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
# 定义计算最大公约数的函数
def gcd(a, b):
    # 使用欧几里德算法,直到其中一个数为 0
    while b != 0:
        # 交换两个数的值,并取余数
        a, b = b, a % b
    # 返回最大公约数
    return a
# 定义计算最小公倍数的函数
def lcm(a, b):
    # 两个数的最小公倍数等于两个数的乘积除以它们的最大公约数
    return a * b // gcd(a, b)
# 获取用户输入的两个正整数
m = int(input("请输入第一个正整数 m:"))
n = int(input("请输入第二个正整数 n:"))
# 调用函数计算最大公约数和最小公倍数,并打印结果
print("最大公约数是:", gcd(m, n))
print("最小公倍数是:", lcm(m, n))

# 数学基础

  1. 什么是极大似然估计