python
文章平均质量分 79
@YangZai
这个作者很懒,什么都没留下…
展开
-
Mac上为VS Code配置Python运行环境及matplotlib画图示例
Python安装VS Code官方教程首先根据教程安装VS Code、VS Code Python extension和Python3(mac系统里面一般都内置了Python3)。如果官网的下载链接太慢了,可以百度其他国内的下载源/镜像。可以在Terminal中用下列语句检验python是否安装:$ python3 --version为了能在Terminal中直接用code命令打开VS Code,首先要保证VS Code的安装路径已经被添加到PATH中:打开VS Code打开Comma原创 2021-09-21 19:05:02 · 1816 阅读 · 1 评论 -
【数据结构与算法】Leetcode407 接雨水 II -困难(堆、BFS)
接雨水II是对接雨水I的拓展,将一维数组扩展到了二维矩阵,之前接雨水I中的动态规划、单调栈以及双指针在这里都不起作用,但是在我之前介绍接雨水I的文章中对双指针进行了分析和延伸,延伸出的更通用的解法即优先队列解法则可以轻易地移植到接雨水II中。原创 2021-06-01 04:46:33 · 628 阅读 · 0 评论 -
【Leetcode周赛】第243场周赛 T3 - 1882. 使用服务器处理任务 - 中等(堆/优先队列)
来源:力扣题目描述给你两个下标从 0 开始 的整数数组 servers 和 tasks ,长度分别为 n 和 m 。servers[i] 是第 i 台服务器的权重 ,而 tasks[j] 是处理第 j 项任务所需要的时间(单位:秒)。 你正在运行一个仿真系统,在处理完所有任务后,该系统将会关闭。每台服务器只能同时处理一项任务。第 0 项任务在第 0 秒可以开始处理,相应地,第 j 项任务在第 j 秒可以开始处理。处理第 j 项任务时,你需要为它原创 2021-05-31 08:15:21 · 302 阅读 · 0 评论 -
【数据结构与算法】Leetcode42 接雨水I -困难(动态规划、单调栈、双指针、堆)
接雨水I算是Leetcode上比较经典而且有意思的题了,解法也有挺多的,有官方题解介绍的动态规划、单调栈、双指针,还有我补充的堆解法,这篇文章不是搬运文,而是对官方题解的补充,而且将接雨水II的解法移植到了接雨水I中,展示了更通用的这类题型的解法和思路。原创 2021-05-29 16:21:17 · 171 阅读 · 0 评论 -
【Leetcode每日一题】2021-04-29 403 青蛙过河 - 困难 - 动态规划 (Python & C++)
来源:力扣为了选出新的首领,青蛙部落准备在河边举办一场比赛,部落的首领必须同时具备强健的体魄和灵活的头脑,所以举办方制定了如下的比赛规则:假定河流被等分为若干个单元格,在其中的一些单元格内放有一块石子。石子的位置存在stones中(用石子所在单元格的序号升序表示)。候选人只能从一块石子跳到另一块石子,跳入水中即视为淘汰。开始时,候选人站在第一块石子上,规定第一步只能跳一个单元格的距离,即只能从单元格1跳到单元格2,即stones[0]为0,stones[1]必须为1。为了选出最优秀的候选人,原创 2021-05-27 20:48:51 · 892 阅读 · 0 评论 -
【数据结构与算法】字典树/前缀树(Python/C++)
字典树/前缀树 Trie前缀树是一种树结构,当一系列单词有很多公共前缀时就可以用前缀树来存储和查询,如果这些单词没有公共前缀,那么和用数组存是一样的。当前缀树中的元素只有字母时常被称为字典树。前缀树是一种空间换时间的思想,这个和哈希表还有动态规划是一样的。前缀树常常被用于基于前缀的模糊匹配,但其不局限于存储单词,树中的节点可以是任意的数据类型或者结构,比如前缀树会被用来解决最大异或值的问题,这时前缀树为二叉树,节点的值为0或者1。前缀树只能用作基于前缀的模糊匹配,如果要做到匹配字符串中的某一段则要借助原创 2021-05-27 16:52:14 · 393 阅读 · 0 评论 -
【数据结构与算法】双端队列 deque
参考《程序员面试指南:IT名企算法于数据结构题目最优解(第2版)》双端队列deque普通的队列是先入先出FIFO(First In First Out),只能从队尾添加元素,从队首弹出元素。而双端队列则是从队尾添加元素,但是既可以从队首弹出元素,和普通的队列一样,也可以和栈一样从队尾弹出元素,所以叫双端队列deque(double-ended queue),它同时具备队列(FIFO)和栈(LIFO)的特性。生成窗口最大值数组题目描述有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边原创 2021-05-25 06:23:35 · 316 阅读 · 0 评论 -
【数据结构与算法】单调栈
参考《程序员面试指南:IT名企算法于数据结构题目最优解(第2版)》单调栈单调栈是一种从栈顶到栈底单调递增或单调递减的栈。它常用于解决离某位置最近的最大或者最小值这种问题。不含重复值的数组问题描述给定一个不含重复值的数组arr,找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置。返回所有位置相应的信息,不存在则为-1。示例:输入:arr = [3, 4, 1, 5, 6, 2, 7]输出:[(-1, 2), (0, 2), (-1, -1), (2, 5), (3, 5),原创 2021-05-23 01:59:30 · 202 阅读 · 0 评论 -
【设计模式】单例模式
参考了《人人都懂设计模式:从生活中领悟设计模式(Python实现)》Ensure a class has only one instance, and provide a global point of acces to it.确保一个类只有一个实例,并且提供一个访问它的全局方法。应用场景你希望这个类有且只能有一个实例;项目中的一些全局管理类。实现方式(Python)1) 重写__new__和__init__方法class Singleton(object): # 在这里定义原创 2021-05-20 20:52:24 · 68 阅读 · 0 评论 -
【图算法】Dijkstra —— 最短路径
Dijkstra原创 2020-09-06 04:36:44 · 355 阅读 · 0 评论 -
【Leetcode每日一题】2021-05-04 740 删除并获得点数 - 中等 - 动态规划 (Python & C++)
来源:力扣给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入:nums = [3,4,2]输出:6解释:删除 4 获得 4 个点数,因此 3 也被删除。之后,删除 2 获得 2 个点数。总共获得 6 个点数。示例 2:输入:nums = [2原创 2021-05-05 03:39:25 · 175 阅读 · 0 评论 -
【Leetcode每日一题】2021-05-03 1473 粉刷房子III - 困难 - 动态规划 (Python & C++)
来源:力扣在一个小城市里,有 m 个房子排成一排,你需要给每个房子涂上 n 种颜色之一(颜色编号为 1 到 n )。有的房子去年夏天已经涂过颜色了,所以这些房子不需要被重新涂色。我们将连续相同颜色尽可能多的房子称为一个街区。(比方说 houses = [1,2,2,3,3,2,1,1] ,它包含 5 个街区 [{1}, {2,2}, {3,3}, {2}, {1,1}] 。)给你一个数组 houses ,一个 m * n 的矩阵 cost 和一个整数 target ,其中:houses[i]:是原创 2021-05-05 00:27:56 · 189 阅读 · 3 评论 -
使用ffmpeg合并多个mp4文件
关键词:ffmpeg、Mac、Python、bash安装ffmpeg打开浏览器,进入ffmpeg官方下载页面,选择操作系统对应的可执行文件下载选项,直接下载压缩包并且解压即可。解压完"ffmpeg-4.4.7z"会得到一个"ffmpeg"的可执行文件,此时我们在命令行是无法使用ffmpeg命令的,因为我们并没有安装ffmpeg到系统,只是下载了可执行文件,下一步我们打开Terminal,把ffmpeg的可执行文件移动到"/usr/local/bin"文件夹下面,这样我们就可以在命名行正常使用ffm原创 2021-05-02 21:19:53 · 2764 阅读 · 0 评论