Python
Fujh-nk
这个作者很懒,什么都没留下…
展开
-
Python-二叉树路径和
题目要求:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。此处路径定义为:从根节点开始,往下一直到一个叶节点,其所经过的所有节点所形成的路径要点:1.路径的保存2.二叉树的遍历3.是否考虑节点为负值或0代码:(递归实现)# coding=utf-8"""question:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的...原创 2020-04-03 16:46:46 · 613 阅读 · 0 评论 -
Python-实现字符串循环左/右移
要点:1.使用字符串的切片实现循环左移/右移的功能2.注意当循环次数大于字符串长度的处理3.决定是否需要支持负数反向移动实现思路:1.先实现移动一次,然后对其进行多次调用2.直接对其分析,使用一次切片完成(需要考虑切片的特点) 如:s[start:],当start > len(s) 时,会返回空串;s[:start],当start > len(s...原创 2020-04-03 16:10:38 · 6188 阅读 · 4 评论 -
Python-二叉查找树的第k大的节点
解决策略:遍历整棵二叉树然后对其进行排序,取第 k 大的节点结合二叉查找树的本身特性:一个节点的左子树的所有节点值都小于当前节点值,右子树所有节点值都大于当前节点值因此,对二叉查找树的中序遍历就是排序后的节点代码(递归实现):# coding=utf-8"""question:给定一颗二叉搜索(查找)树,找到其第 k 个节点其中第 k 个节点指将所有节点排序(升序)...原创 2020-04-01 13:42:26 · 650 阅读 · 0 评论 -
Python-链表去重
要点:1.链表实现2.链表访问和节点删除代码:# coding=utf-8"""question:在一个链表中,存在重复的节点,请删除该链表中重复的节点,重复节点只保留一个,返回链表头指针例;链表:1->2->3->3->3->4->4->5处理后:1->2->3->4->5"""# 节点类...原创 2020-03-31 20:11:11 · 1122 阅读 · 0 评论 -
Python-获取整数列表的中位数
要点:列表排序、列表索引列表排序:1.list.sort():改变列表本身2.sorted(list):不改变列表本身,返回排序后列表代码:# coding=utf-8"""question:得到一个整数列表的中位数"""def get_median(nums): length = len(nums) if length < 0: ...原创 2020-03-31 20:00:22 · 678 阅读 · 0 评论 -
Python-列表滑动窗口最大值
要点:1.列表切片2.max()函数代码如下:# coding=utf-8"""question:给定一个列表和滑动窗口的大小,找出所有滑动窗口里数值中的最大值。例:列表: [2, 3, 4, 2, 6, 2, 5, 1],滑动窗口大小为 3一个有六个滑动窗口[[2, 3, 4], 2, 6, 2, 5, 1] [2, [3, 4, 2], 6, 2...原创 2020-03-28 15:17:32 · 855 阅读 · 0 评论 -
Python-查找第n个丑数
1.丑数的定义:质因数只包含2、3、5中的一个或多个的数称为丑数2.分析:对任意的一个丑数(除第一个丑数 1 外)ui,必定存在一个ut < ui,使得ui = ut * 2 或 ut * 3 或 ut * 5,若不成立则:1.ui % (2|3|5) 不等于 0,ui 不是整数2.ui % (2|3|5)等于 0,ui / (2|3|5)是丑数则, ui 也是...原创 2020-03-28 15:05:37 · 1733 阅读 · 0 评论 -
Python-列表元素统计
列表元素统计方法:1.使用字典 对列表元素进行一次遍历,将结果保留在字典中2.使用集合和内置函数 将列表转化为集合,得到所有不同元素,对不同元素调用 list.count(item) 以统计次数第二种方法的简单应用:# coding=utf-8"""question:有一个数字列表,找出列表中出现次数超过列表长度一般的数字若列表长度是...原创 2020-03-27 20:02:22 · 831 阅读 · 0 评论 -
Python-判断是否是搜索(查找)二叉树
# coding=utf-8"""question:有一个整数类型的列表,判断该列表是否为对应二叉搜索(查找)树1的后序遍历结果搜索二叉树的父节点值大于其左子树的所有值,小于其右子树的所有值"""def judge(nums): if not nums: return False elif len(nums) == 1: # 递归出口 ...原创 2020-03-27 19:58:30 · 729 阅读 · 0 评论 -
Python-链表的实现和反转
# coding=utf-8"""question:有一个单向链表,请编写一个函数,将这个单向链表反转,并返回反转后的头节点"""# 节点类class Node: def __init__(self, val): self.val = val self.next = None# 反转链表def reverse_link(heade...原创 2020-03-26 19:03:58 · 110 阅读 · 0 评论 -
Python-统计二进制数中1的个数
# coding=utf-8"""question:将一个整数转换为二进制形式,统计二进制中 1 的个数,如果是负数,按补码统计。设一个整数为 4 个字节"""def count_bin_one(num): if num < 0: num &= 0xffffffff # 将内存中负数的二进制变成对应正数 bits = len(b...原创 2020-03-26 19:01:43 · 1823 阅读 · 0 评论 -
Python-最大子序列乘积
设序列为a1,a2,a3...ai...an;考虑ai时:1.当ai大于0时,当前临时最大乘积(tmp_max)为a1...ai-1中最大的连续子序列乘积(ret_max)乘上ai,或为ai2.当ai小于0时,当前临时最大乘积(tmp_max)为a1...ai-1中最小的连续子序列乘积(ret_min)乘上ai,或为ai3.当ai小于0时,临时最大乘积清零故保存连续子序列a1....原创 2020-03-25 19:04:18 · 801 阅读 · 0 评论 -
Python-斐波那契数列应用
# coding=utf-8"""question:可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种覆盖方法?用递归和非递归方式实现"""# 递归实现def rect_cover_recur(n): if n <= 0: return 0 elif n...原创 2020-03-24 19:30:49 · 384 阅读 · 0 评论 -
Python 异常处理与 with 语句
1.普通异常处理:格式:try: # try 语句块:可能会产生异常的程序段except: # except 语句块:异常处理程序段else: # else 语句块:try 中未发生异常时,执行的程序段finally: # finally 语句块:无论如何都会执行的程序段其中 except 可以包含多个,将各种异常分开处理2.try... ...原创 2020-03-12 11:54:28 · 414 阅读 · 0 评论 -
Python-字符串常用
1原创 2020-03-04 11:43:17 · 470 阅读 · 0 评论 -
Python-functools
1.functools.partial(func[,*args][, **keywords])功能:改变原有默认值参数的默认值 给没有默认值的参数增加一个默认值注:返回类型为<class 'functools.partial'>例:# coding=utf-8from functools import partialdef abc(a, b, c=1)...原创 2019-08-27 20:33:02 · 100 阅读 · 0 评论