![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Leetcode和算法学习
文章平均质量分 54
记录算法学习,Leetcodeclassification和Leetcode的刷题时间
小王做笔记
这个作者很懒,什么都没留下…
展开
-
python collections 中的常见函数使用,常见数据类型定义
python collections 中的常见函数使用,常见数据类型定义 说明:可以直接根据标题进行查找需要使用的数据和函数使用 namedtuple() 定义一个元组使用 deque() 定义队列deque 常用函数 总结使用 deque() 完成列表的移动平均操作 ! 常用于数据处理,统计历史信息的变化趋势上。使用 defaultdict() 定义 字典(可以含有不存在的键)通过 元组列表 生成字典:既然是字典类型就会存在 .keys() , .values(), .items()通过 集合 set原创 2022-04-10 16:44:15 · 829 阅读 · 0 评论 -
python中的字典表达式,通过列表生成字典
python 中的 字典表达式 背景M1: 使用两个for循环M2:使用 一个 forM3:使用 字典表达式M4:通过zip函数完成总体程序 -- 删除有序链表中重复的元素优化1: 使用 collections.Counter完成数据频次的统计优化2: 通过列表生成式 替代循环操作背景列表中的元素 充当 字典中的 key0 用来 充当 列表中的 valueM1: 使用两个for循环l = [1, 2, 2, 3, 3, 4, 4, 5]dic = {}for k in l: for原创 2022-04-10 10:25:23 · 4750 阅读 · 0 评论 -
LeetCodeClassification ---- No.1 分治 --- 快速排序( 递归 )
分治的使用方法 : 快速排序 快速排序pythongo思考向数组中添加元素拼接多个数组快速排序基准条件:只有一个值或者数组为空,不需要快速排序了。递归条件左边放小于基准值的数组,然后对其进行快速排序 (使用递归实现)右边放大于基准值的数组,然后对其进行快速排序 (使用递归实现)合将快排的数组按照从左到有排起来,实现数组的从小到大排序。python# 快速排序 def quickSort(arr): if len(arr) < 2: r原创 2022-01-11 20:33:09 · 386 阅读 · 1 评论 -
LeetCodeClassification---- No.1 分治--分治的工具是递归---使用递归完成找出一维数组中的最大值
使用递归完成找出一维数组中的最大值如果是两个数,我们很容易就清楚,哪个是最大的,哪个是最小的 ,因此基准条件就是 数组中剩下两个元素递归条件:使用函数本身得到 暂时的最大值pythondef findMax(l): if len(l) == 0: ## 基准条件 return l[0] if l[0] > l[1] else l[1] max_temp = findMax(l[1:]) ## 递归条件,完成更新 return l[0] if l[0] >原创 2022-01-11 14:07:23 · 314 阅读 · 0 评论 -
LeetCodeClassification---- No.1 分治--使用递归完成对一维数组的求和--递归法完成sum函数
递归函数来一维数组的求和以下内容来自,《算法图解》确定递归停止条件(基准条件):确定递归条件:整个递归过程python实现# 使用递归完成对数组的相加 def sum(l): if l == [] or len(l) == 1: ## 先设置基准条件 return l[0] else: ## 设置 递归条件 return l[0] + sum(l[1:]) ## l[1:] 减少数据尺度,不断往基准条件原创 2022-01-11 13:24:09 · 491 阅读 · 0 评论 -
LeetCodeClassification---- No.1 分治--分治的工具是递归---斐波那契数列的实现
递归斐波那契数列pythondef fib(n): if n == 0 or n==1: ## 基准条件 return 1 else: ## 递归条件 return fib(n-1) + fib(n-2) def testFib(n): for i in range(n + 1): print(fib(i))gopackage mainimport "fmt"func fib(n int) int { if n == 0 || n =原创 2022-01-11 10:09:30 · 229 阅读 · 0 评论 -
LeetCodeClassification---- No.1 分治--分治例题,求众数
Q1. 多数元素给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 [n/2] 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。解题思路:确定切分的终止条件:直到所有的子问题都是长度为 1 的数组,停止切分。准备数据,将大问题切分为小问题递归地将原数组二分为左区间与右区间,直到最终的数组只剩下一个元素,将其返回处理子问题得到子结果,并合并长度为 1 的子数组中唯一的数显然是众数,直接返回即可。如果它们的众数相同,那么显然原创 2022-01-09 16:24:21 · 580 阅读 · 0 评论 -
LeetCodeClassification---- No.1 分治
分治分治算法的主要思想分治算法的步骤适用的场景满足分治的条件伪代码编程情景Q1. 二分搜索Q:如何编程求出一组数据的有序对个数或者逆序对个数呢?本内容均来自于 开源组织 datawhale , 之前一直嚷嚷着要刷题刷题,一直没开始,就今天开始吧!!其他引用,本人会标明出处,侵删!注意:内容中,本人会是用python,Golang 两种语言进行编程,并且对比学习两个语言的联系和区别,如果在能力范围内,可能会尝试使用c++ 来试着做一做!分治算法的主要思想分治 = 分开治理 ≈ 将原问题若干个子问题原创 2022-01-09 14:16:45 · 291 阅读 · 0 评论