02 2021 档案

摘要:参考:https://blog.csdn.net/luotoo/article/details/106615367 按照通常直觉,正负数不是对称的么,为什么负数最小不是-127,又或正数最大是128呢? byte类型是8bit表示,那么可以表达的状态就有2^8=256个,如果表示无符号整数可以表达最 阅读全文
posted @ 2021-02-18 18:17 bokeyuan6 阅读(3326) 评论(0) 推荐(2) 编辑
摘要:最近做题发现-123%10=7,于是查阅了一下python的取余机制,这里记录。 参考:https://blog.csdn.net/sun___M/article/details/83142126 //:向下取整 int():向0取整 正数的取余比较直接: print(123%10) #3 这里结果 阅读全文
posted @ 2021-02-18 18:09 bokeyuan6 阅读(3955) 评论(0) 推荐(0) 编辑
摘要:list 从细节上看,Python中的列表是由对其它对象的引用组成的连续数组。指向这个数组的指针及其长度被保存在一个列表头结构中。这意味着,每次添加或删除一个元素时,由引用组成的数组需要该标大小(重新分配)。幸运的是,Python在创建这些数组时采用了指数过分配,所以并不是每次操作都需要改变数组的大 阅读全文
posted @ 2021-02-18 14:26 bokeyuan6 阅读(229) 评论(1) 推荐(0) 编辑
摘要:总的要点: 明确dp的含义。初始化时注意限制输入,初始化后注意迭代时要从初始化之后开始!从初始化之后开始!从初始化之后开始! 步骤:明确含义和递推公式,创建dp;初始化dp;迭代dp. 二维dp和滚动数组的区别:二维dp最后一个for内更新所用的参量在该循环内不会改变,但滚动数组会改变所用的参数(这 阅读全文
posted @ 2021-02-17 17:02 bokeyuan6 阅读(63) 评论(0) 推荐(0) 编辑
摘要:leetcode455.分发饼干 题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼 阅读全文
posted @ 2021-02-16 17:30 bokeyuan6 阅读(261) 评论(0) 推荐(0) 编辑
摘要:该类问题的核心:递归过程都在“全局”变量里记录,for(横向的选择)都在递归函数里记录。 主要问题类型:排列问题,组合问题,子集问题,子序列,分割问题,其他NP问题 常用剪枝使得不重复:如果结果不要求次序与原list相对次序相同(组合,子集,排列)问题,则先将list排序再判断是否与前一个相同;如果 阅读全文
posted @ 2021-02-12 16:32 bokeyuan6 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1、一根木棒,截成三截,组成三角形的概率是多少? 设第一段截 x,第二段截 y,第三段 1 - x - y。 考虑所有可能的截法。可能的截法中必须保证三条边都是正数且小于原来边长,则有 0 < x < 1,0 < y < 1,0 < 1 - x - y < 1。 画图可知,(x, y) 必须在单位正 阅读全文
posted @ 2021-02-12 15:26 bokeyuan6 阅读(263) 评论(0) 推荐(0) 编辑
摘要:defaultdict defaultdict 是 dict 类型的子类,正如其名,初始化时,可以给key指定默认值,什么意思呢?直接看代码。如果是普通的dict对象,访问一个不存在的key时,会报错: dict1 = dict() print(dict1['a']) """ Traceback ( 阅读全文
posted @ 2021-02-10 17:06 bokeyuan6 阅读(438) 评论(0) 推荐(0) 编辑
摘要:引用全局变量,不需要golbal声明,修改全局变量,需要使用global声明,特别地,列表、字典等如果只是修改其中元素的值(而不是整体赋值的形式),可以直接使用全局变量,不需要global声明。 参考:https://www.pythonf.cn/read/127268 具体名称和细节:https: 阅读全文
posted @ 2021-02-09 20:15 bokeyuan6 阅读(57) 评论(0) 推荐(0) 编辑
摘要:在leetcode77中,发现list.append的结果不对。原代码: class Solution: def combine(self, n: int, k: int) -> List[List[int]]: res = [] path = [] def backtracing(n, start 阅读全文
posted @ 2021-02-09 16:03 bokeyuan6 阅读(646) 评论(0) 推荐(0) 编辑
摘要:主要是深度遍历和层序遍历的递归和迭代写法。 另外注意:因为求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)。 所有题目首先考虑root否是空。有的需要考虑root是否是范围内合理的起点。其他细节:每次需要引用节点值时考虑是否非空。 基本概念: 二 阅读全文
posted @ 2021-02-09 11:01 bokeyuan6 阅读(218) 评论(0) 推荐(0) 编辑
摘要:取数组中点时不要写 int mid = (left + right) // 2;,「这么写有一个问题:数值越界,例如left和right都是最大int,这么操作就越界了,在二分法中尤其需要注意!」 所以可以这么写:int mid = left + ((right - left) // 2); 阅读全文
posted @ 2021-02-05 20:26 bokeyuan6 阅读(54) 评论(0) 推荐(0) 编辑
摘要:__name__代表当前模块的名称,hello.py文件如果使用python hello.py的方式运行,__name__的值就等于__main__,此时say()函数会被执行。如果被当时模块导入时,__name__的值就会是模块名称hello.py __init__:当一个对象被创建,Python 阅读全文
posted @ 2021-02-05 15:37 bokeyuan6 阅读(138) 评论(0) 推荐(0) 编辑
摘要:转载自:https://www.cnblogs.com/zzhangyuhang/p/8534165.html 在介绍Python的self用法之前,先来介绍下Python中的类和实例我们知道,面向对象最重要的概念就是类(class)和实例(instance)。 类是抽象的模板,比如学生这个抽象的事 阅读全文
posted @ 2021-02-05 15:25 bokeyuan6 阅读(645) 评论(0) 推荐(0) 编辑
摘要:之前一直没有注意过该问题,在leetcode144中写递归发现该问题,不知道递归函数传参是指针还是引用。 参考:http://c.biancheng.net/view/2258.html 如果是不可变对象,如常数,字符串等,传入引用。如果是可变对象,如字典,列表等,传入引用。 阅读全文
posted @ 2021-02-03 10:08 bokeyuan6 阅读(38) 评论(0) 推荐(0) 编辑
摘要:通过维护最小堆排序,使用heapq模块 一般使用规则:创建列表 heap = [] 函 数 描 述 heapq.heappush(heap, x) 将x压入堆中 heapq.heappop(heap) 弹出最小的元素 heapq.heapreplace(heap, x) 弹出最小的元素,并将x压入堆 阅读全文
posted @ 2021-02-02 10:53 bokeyuan6 阅读(70) 评论(0) 推荐(0) 编辑