自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shengfuok123456的博客

技术分享,送人玫瑰,手有余香。

  • 博客(38)
  • 收藏
  • 关注

原创 Python与Flask的NotFound最快速的解决办法

4、app = Flask(__name__, template_folder='templates') template_folder必须是templates;3、render_template('***.html')这里面的名字要正确;5、static为静态资源文件夹,必须跟templates同一级位置。1、项目下面要有templates文件夹,html文件要放进里面;2、templates文件夹要和运行的py文件在同一级目录;

2023-05-14 11:30:58 569

原创 Python框架flask出现404如何跳转到错误页面

flask框架构建出来应用程序表现出来就是一个浏览器上显示的网页,而网页访问时可能会因为网络或者是其他的原因导致出现404及401等错误,那么这些状态码实际上表示的就是网页访问出现了错误不能正常访问。而在出现错误时就需要跳转到一个错误页来提示用户,那么简单的调用一下errorhandler()方法作为路由即可,示例如下:(本地创建page_not_found.html)@app.errorhandler(404) #这是未定义路径的错误处理 ,在有路径的错误需加入try-except处理。

2023-05-14 11:27:56 1306

原创 Python与Excel

workbook = openpyxl.load_workbook(file) # 返回一个workbook数据类型的值,即整个文件对象。# print(workbook.sheetnames) # 打印Excel表中的所有表。# print(sheet.dimensions) # 获取表格的尺寸大小。u1 = input('输入用户名::').strip()p1 = input('输入密码:').strip()# 获取第1行第1列的数据。# 获取第1行第1列的数据。print('登录成功。

2023-05-13 16:57:18 130

原创 Python与JSON

text = json.loads(jsonstr)#用于解码 JSON 数据。该函数返回 Python 字段的数据类型。jsonstr = json.dumps(data) #用于将 Python 对象编码成 JSON 字符串。

2023-05-13 16:54:14 81

原创 Python与多个get与post的服务API

app.route('/myProject/personList', methods=["GET", "POST"])#定义第一个方法名称,使用 route() 装饰器来把下方函数绑定到 URL。@app.route('/myProject/addtow', methods=["GET", "POST"])#定义第一个方法名称使用 route() 装饰器来把函数绑定到 URL。number = int(params.get("number", 1)) #通过关键字key获取值,获取不到时默认值0。

2023-05-13 16:52:52 132

原创 Python与queue的生产者消费者模式

print("工程师编号={}做了编号={}的电脑,还剩{}个电脑没卖完".format(self.name, str(self.name)[-1],# print("厨师编号="+self.name+'暂停'+str(t)+"后做饭")# print("厨师编号="+self.name+'暂停'+str(t)+"后做饭")print('名称=' + data['data']['name'])print('编号=' + data['data']['id'])c.start() # 启动消费者者线程。

2023-05-13 16:50:10 186

原创 Python与Redis消息队列订阅发布模式

pool = ConnectionPool.from_url(url=url, decode_responses=True) #连接池。_, queue_name, message = pub.parse_response()#订阅的响应实体。self.client.publish(self.queue_name, data) #给指定队列,发布消息内容。rmq = MQS(url='redis://127.0.0.1:6379/15', name='获取产品队列消息')""" 订阅 """

2023-05-13 16:49:56 609

原创 Python与Redis的内存数据库缓存

r.set('key'+str(i),'value'+str(i)) #在缓存中写入数据。print(r.get('key'+str(j))) #在缓存中读取数据。

2023-05-13 16:48:26 152

原创 30. 柱状图中最大的矩形_Python算法

给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。def fun1(heights): # 连续数字最小*间隔的最大值则是答案。输入:heights = [2,1,5,6,2,3]求在该柱状图中,能够勾勒出来的矩形的最大面积。解释:最大的矩形为图中红色区域,面积为 10。输入: heights = [2,4]# 根据题目输入例子进行验证。

2023-05-03 17:46:57 140

原创 29. 删除有序数组中的重复项 II_Python算法

解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3。解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]输出:5, nums = [1,1,2,2,3]// 在函数里修改输入数组对于调用者是可见的。输入:nums = [1,1,1,2,2,3]

2023-05-03 16:48:17 39

原创 28. 子集_Python算法

res = res + [[i] + num for num in res] #迭代算法。给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的子集(幂集)。输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。输入:nums = [1,2,3]# 根据题目输入例子进行验证。输入:nums = [0]输出:[[],[0]]

2023-05-03 12:03:23 108

原创 27. 颜色分类_Python算法

给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。#nums = list(nums) #原地修改不能进行转化。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。输入:nums = [2,0,2,1,1,0]输入:nums = [2,0,1]输出:[0,0,1,1,2,2]# 根据题目输入例子进行验证。输出:[0,1,2]

2023-05-02 18:54:42 295

原创 26. 搜索二维矩阵_Python算法

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。if target in i: #题目要求是判断是否存在一个目标值在数组内。编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。for i in matrix: #i 是内层数组。每行的第一个整数大于前一行的最后一个整数。

2023-04-26 18:05:28 81

原创 25. 矩阵置零_Python算法

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。请使用 原地 算法。matrix[i][j] = 0 # 根据要求赋值为0。输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]输出:[[1,0,1],[0,0,0],[1,0,1]]row = [] # 保存行下标。

2023-04-26 17:08:28 122

原创 24. 加一_Python算法

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。输入:digits = [4,3,2,1]输入:digits = [1,2,3]解释:输入数组表示数字 4321。解释:输入数组表示数字 123。输入:digits = [0]# 根据题目输入例子进行验证。输出:[4,3,2,2]输出:[1,2,4]

2023-04-26 11:40:42 77

原创 23. 最小路径和_Python算法

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。# 用一个矩阵min_path来记录到达某位置的最小路径和,动态规划。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输入:grid = [[1,2,3],[4,5,6]]解释:因为路径 1→3→1→1→1 的总和最小。说明:每次只能向下或者向右移动一步。# 根据题目输入例子进行验证。

2023-04-26 11:28:06 104

原创 22. 插入区间_Python算法

lists.append([intervals[low][0], max(maxs,intervals[hight][1])]) #合并一个,取最小和最大值。输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输入:intervals = [[1,3],[6,9]], newInterval = [2,5]解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。# 根据题目输入例子进行验证。

2023-04-25 17:51:14 56

原创 21. 合并区间_Python算法

lists.append([intervals[low][0], max(maxs,intervals[hight][1])]) #合并一个,取最小和最大值。输入:intervals = [[1,3],[2,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。输入:intervals = [[1,4],[4,5]]输出:[[1,6],[8,10],[15,18]]输出:[[1,5]]

2023-04-25 17:18:35 115

原创 20. 最大子数组和_Python算法

nums[i] = max(nums[i - 1] + nums[i], nums[i]) #动态规划,累计记录最大值。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]子数组 是数组中的一个连续部分。# 根据题目输入例子进行验证。输入:nums = [1]

2023-04-24 22:28:01 37

原创 19. 字母异位词分组_Python算法

if isSampe(strs[i], strs[j]): # 是异位的单词合并在同一个list。输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]def fun1(strs): # 顺序判断,各单词现在排序后判断,相等则是,已经使用了的置0。输出: [["bat"],["nat","tan"],["ate","eat","tea"]]输入: strs = ["a"]输入: strs = [""]输出: [["a"]]输出: [[""]]

2023-04-24 15:22:16 75

原创 18. 旋转图像_Python算法

def fun1(matrix):#对于矩阵中第 ii 行的第 jj 个元素,在旋转后,它出现在倒数第 ii 列的第 jj 个位置。输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]

2023-04-24 12:33:29 39

原创 17. 全排列 II_Python算法

backtrack(nums[:i] + nums[i + 1:], tmp + [nums[i]]) # 全排序回溯。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]def backtrack(nums, tmp): # 回溯算法。backtrack(nums, []) # 调用回溯方法。res = [] # 保存满足条件的数据。输入:nums = [1,1,2]输入:nums = [1,2,3]# 定义解题方法:排列组合。

2023-04-24 11:50:04 48

原创 16. 全排列_Python算法

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。if temp not in lists: #去重判断。输入:nums = [1,2,3]输出:[[0,1],[1,0]]输入:nums = [0,1]# 根据题目输入例子进行验证。输入:nums = [1]# 定义解题方法:排列组合。

2023-04-23 22:47:07 60

原创 15. 接雨水_Python算法

解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。#水的面积 = h1累加的面积 + h2累加的面积 - 整个框的面积 - 黑色物体的面积。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输入:height = [4,2,0,3,2,5]# 定义解题方法:通过画图求水面积。

2023-04-23 21:52:00 301

原创 14. 缺失的第一个正数_Python算法

if nums[i + 1] - nums[i] > 1 and nums[i] + 1 > 0: # 存在间隔大于1。if 1 not in nums: # 不包含1,则最小正数肯定是1。return nums[-1] + 1 # 不存在间隔大于1。给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。输入:nums = [7,8,9,11,12]输入:nums = [3,4,-1,1]# 定义解题方法:使用等价类进行划分。输入:nums = [1,2,0]

2023-04-23 13:01:20 78

原创 13. 有效的数独_Python算法

解释:除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。for i in range(0, 9, 3): # 对九宫格是否重复进行判断,关键理解对单元格的表示。请你判断一个 9 x 9 的数独是否有效。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。#判断数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。#判断数字1-9在每一行只能出现一次。#判断数字1-9在每一列只能出现一次。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。

2023-04-23 09:15:05 59

原创 12. 搜索插入位置_Python算法

if nums[i] < target and target < nums[i + 1]: #匹配到中间位置。给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。index = nums.index(target) #匹配到则直接返回。if nums[-1] < target:#大于所有值场景。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。

2023-04-22 22:43:57 99

原创 11. 在排序数组中查找元素的第一个和最后一个位置_Python算法

if left > -1 and right == -1 and nums[left] == nums[n - 1]: # 匹配到尾部值。if left > -1 and right == -1 and nums[left] < nums[i]: # 匹配到最后反转值。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。如果数组中不存在目标值 target,返回 [-1, -1]。输出:[-1,-1]

2023-04-22 22:17:06 126

原创 10. 搜索旋转排序数组_Python算法

在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。输入:nums = [4,5,6,7,0,1,2], target = 0。

2023-04-22 22:03:01 54

原创 9. 下一个排列_Python算法

例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。if nums[i] > nums[i-1]: #从右往左比较,当出现靠右更小的数时,退出判断。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输出:[1,3,2]

2023-04-22 21:44:47 128

原创 8. 移除元素_Python算法

解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。输入:nums = [0,1,2,2,3,0,4,2], val = 2。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3]# 根据题目输入例子进行验证。

2023-04-22 09:58:48 23

原创 7.删除有序数组中的重复项_Python算法

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]

2023-04-22 09:41:50 86

原创 6. 四数之和_Python算法

请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d < n,a、b、c 和 d 互不相同。输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]输入:nums = [1,0,-1,0,-2,2], target = 0。输入:nums = [2,2,2,2,2], target = 8。输出:[[2,2,2,2]]

2023-04-21 22:50:09 39

原创 5. 最接近的三数之和_Python算法

result = nums[i] + nums[left] + nums[right] # 满足条件,题目要求返回三数之和。result = nums[i] + nums[left] + nums[right] # 满足条件,题目要求返回三数之和。if nums[i] + nums[left] + nums[right] >= target: # 和大则往左移动可变小。result = nums[0] + nums[1] + nums[2] # 题目要求返回三数之和。# 根据题目输入例子进行验证。

2023-04-21 22:21:08 63

原创 4. 三数之和_Python算法

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]输入:nums = [0,1,1]输入:nums = [0,0,0]解释:唯一可能的三元组和为 0。输出:[[0,0,0]]

2023-04-21 10:04:24 108

原创 3. 盛最多水的容器_Python算法

有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。# # 根据装水的中文意思代码表达式,高度取2者最小,宽取两数距离,一直更新最大值。# 根据题目意思可联想到使用顺序查找穷举所有的计算结果,但会超时,可使用左右双指针解题。# 根据装水的中文意思代码表达式,高度取2者最小,宽取两数距离,一直更新最大值。输入:[1,8,6,2,5,4,8,3,7]返回容器可以储存的最大水量。

2023-04-20 22:59:56 84

原创 2.寻找两个正序数组的中位数_Python算法

data = (nums3[mid - 1] + nums3[mid]) / 2 #根据题目要求中间2个数相加后平均。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。data = nums3[mid] #根据题目要求取中间数。if n3_len % 2 == 0: #整除表示个数为偶数。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]解释:合并数组 = [1,2,3] ,中位数 2。

2023-04-17 17:45:24 70

原创 1. 两数之和_Python算法

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。示例 2:输入:nums = [3,2,4], target = 6输出:[1,2]

2023-04-17 17:23:29 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除