摘要:
7.1 解题思路 """ LSC最长公共子序列问题 1、动态优化,要先找到最优子结构 根据问题总结以下特性: 特性1:如果两个序列的最后一个元素相同,都为x,则去掉最后一个元素的两序列的最长公共子序列 比 原两序列的最长公共子序列少一个x 特性2:如果两个序列的最后一个元素不相同,那么两序列的最长公 阅读全文
posted @ 2021-02-22 21:12
xiangjianan
阅读(143)
评论(0)
推荐(0)
摘要:
两数之和问题:给定一个列表和一个整数,从列表中找到两个数,使得两数之和等于给定的数,返回两个数的下标。题目保证有且只有一组解 6.1 方法一 遍历列表,逐个取元素n1,同时再逐个取n1右侧数n2,判断 n1 + n2 是否满足条件,满足条件时直接返回两者下标 def two_sum_1(nums, 阅读全文
posted @ 2021-02-22 21:05
xiangjianan
阅读(110)
评论(0)
推荐(0)
摘要:
5.1 方法一:用栈方法解决迷宫问题 class MyStack(object): """ 自定义栈类 """ def __init__(self): self.stack = [] def push(self, data=None): """ 入栈 :param data: 入栈数据 :retur 阅读全文
posted @ 2021-02-22 20:59
xiangjianan
阅读(75)
评论(0)
推荐(0)
摘要:
4.1 topk问题 """ topk问题 获取一个大列表中值最大的前10个元素 """ import random from cal_time import cal_time def sift(li, low, high): """ 向下调整实现 :param li: 一个非堆结构的完全二叉树,其 阅读全文
posted @ 2021-02-22 20:24
xiangjianan
阅读(57)
评论(0)
推荐(0)
摘要:
3.1 希尔排序 class ShellSort: """ 希尔排序(一种分组插入排序算法) 时间复杂度:取决于Gap序列(https://en.wikiredia.com/wiki/Shellsort#Gap_sequences) 空间复杂度:O(1) 简介: Gap序列为 n/2, n/4, n 阅读全文
posted @ 2021-02-22 19:33
xiangjianan
阅读(66)
评论(0)
推荐(0)
摘要:
一、排序:时间复杂度O(n*n) 二、排序:时间复杂度O(n*logn) 三、排序:其它排序算法 四、问题:topk问题 五、问题:迷宫问题 六、问题:2-sum问题 七、问题:LSC最长公共子序列问题 阅读全文
posted @ 2021-02-22 15:14
xiangjianan
阅读(141)
评论(0)
推荐(0)
摘要:
2.1 快速排序 class QuickSort: """ 快速排序 时间复杂度:最坏 O(n*n)、平均 O(n*logn)、最优 O(n*logn) 空间复杂度:最坏 O(n)、平均 O(logn) 简介: 1 找到列表最左边的元素,将其归位,归位后左边元素都比这个元素小,右边元素都比这个元素大 阅读全文
posted @ 2021-02-22 15:09
xiangjianan
阅读(505)
评论(0)
推荐(0)
摘要:
1.1 冒泡排序 class BubbleSort: """ 冒泡排序 时间复杂度:最坏 O(n*n)、平均 O(n*n)、最优 O(n) 空间复杂度:O(1) 简介: 1 循环一次列表,对每相邻两个元素做比较,决定是否交换 2 一次循环后,有序区个数+1,无序区个数-1 3 再对无序区重复步骤1 阅读全文
posted @ 2021-02-22 12:17
xiangjianan
阅读(473)
评论(0)
推荐(0)

浙公网安备 33010602011771号