ARTS-Week 1
2020-05-30 本文已影响0人
such_
Algorithm
两数之和
题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
思考:
从数组中拿到一个元素 num
,先用 target
减去 num
得到需要找到的另外一个数,然后遍历寻找剩下的那一个数字。在整个执行过程中会出现主要包含两个环节,第一个对数组的遍历,第二个是从数组中查找到特定的数字。
对于其中性能影响较大的是查找特定的数字。
查找特定的数字有两种方式:
1.每次遍历整个数组
2.使用hasp表
下面的代码时使用hasp
表的代码,但是这个代码会有一个bug
,出现重复数字的时候,无法准备获取到指定的数组index
.
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hashmap = dict(zip(tuple(nums), range(len(nums))))
for key, value in enumerate(nums):
need_num = target - value
if need_num in hashmap.keys():
need_num_key = hashmap.get(need_num)
if need_num_key == key:
continue
return [key, need_num_key]
return None
Review
使用 Python 创建和修改PDF
这是一篇Python 操作PDF 的教程文章
主要内容:
1.抽取文字
2.抽取页面
3.合并多个PDF
4.修改PDF 的样式
5.加密解密PDF
6.使用 reportlab
创建特定样式的 PDF 文件
Tips
Flask-SQLalchemy relationship
SQLalchemy
创建 relationship
有两种:
一种是有外键关系可以直接创建 relationship
另一种则是在没有外键关系的情况下创建relationship
relationship
关系选项
在没有外键关联时,就需要使用primaryjoin
去指定关联关系:
class User(db.Model):
.....
base_info = db.relationship('UserBaseInfo',
foreign_keys='User.id',
primaryjoin='User.id == UserBaseInfo.user_id',
lazy='joined',
uselist=False
)
反向引用时应用一对多的关系
class Contract(db.Model)
....
owner = db.relationship('User', backref=backref("contact", uselist=True))
Share
权限管理是web开发中绕不开的话题,
第一篇文章中学会了用装饰器去处理权限判断,简单且明了。
第二篇文章中在前后端分离中去控制用户访问路径。