算法
ICPunk
持续学习,空杯心态,努力工作,感恩生活
研究Vue、React生态,探索web3D、webgis、元宇宙、数字孪生、虚拟办公、低代码等技术
不止于前端,努力掌握更多技术,不在拥有技术,而在培养视角
天高地阔,瀚海星云,不低估他人,不高看自己
展开
-
leetcode第69题python版x 的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。原创 2023-03-07 08:13:28 · 218 阅读 · 1 评论 -
leetcode第68题python版文本左右对齐
68. 文本左右对齐给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ' ' 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。原创 2022-10-04 13:01:01 · 470 阅读 · 0 评论 -
leetcode第67题python版二进制求和while遍历法
67. 二进制求和 给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。原创 2022-08-20 21:30:32 · 403 阅读 · 0 评论 -
leetcode第66题python版加一遍历法
66. 加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。原创 2022-08-20 17:26:34 · 221 阅读 · 0 评论 -
leetcode第98题python版验证二叉搜索树递归法
98. 验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。...原创 2022-07-30 12:10:18 · 284 阅读 · 0 评论 -
leetcode第95题python版不同的二叉搜索树II三层循环递归法
95. 不同的二叉搜索树 II 给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。原创 2022-07-30 09:47:50 · 251 阅读 · 0 评论 -
leetcode第96题python版不同的二叉搜索树双层循环递推法
96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。原创 2022-07-29 22:31:06 · 250 阅读 · 0 评论 -
leetcode第77题python版组合_回溯法
77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。原创 2022-07-28 15:41:03 · 417 阅读 · 0 评论 -
leetcode第106题python版从中序与后序遍历序列构造二叉树递归法
106. 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。原创 2022-07-28 11:55:53 · 331 阅读 · 0 评论 -
leetcode第105题python版从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。原创 2022-07-28 11:12:35 · 203 阅读 · 0 评论 -
leetcode第104题python版二叉树的最大深度深度优先搜索
104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7]...原创 2022-07-27 22:05:29 · 249 阅读 · 0 评论 -
leetcode第100题python版相同的树递归法
100. 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。原创 2022-07-27 20:56:23 · 179 阅读 · 0 评论 -
leetcode第1137题python版第N个泰波那契数动态规划法
1137. 第 N 个泰波那契数泰波那契序列 Tn 定义如下: T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。原创 2022-07-27 20:39:55 · 149 阅读 · 0 评论 -
leetcode第509题python版斐波那契数列动态规划法
70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?原创 2022-07-27 20:00:35 · 204 阅读 · 0 评论 -
leetcode第70题python版爬楼梯动态规划法
70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?原创 2022-07-27 19:34:49 · 517 阅读 · 0 评论 -
leetcode第101题python版对称二叉树递归法
101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。原创 2022-07-27 18:36:22 · 236 阅读 · 0 评论 -
leetcode第107题python版二叉树的层序遍历队列+双层循环法
107. 二叉树的层序遍历 II 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)原创 2022-07-27 15:36:05 · 185 阅读 · 0 评论 -
leetcode第145题python版二叉树后序遍历迭代法
145. 二叉树的后序遍历 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。原创 2022-07-26 23:03:34 · 338 阅读 · 0 评论 -
leetcode第144题python版二叉树前序遍历迭代法
144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。原创 2022-07-26 22:50:53 · 403 阅读 · 0 评论 -
leetcode第94题python版二叉树中序遍历迭代法
94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。原创 2022-07-26 21:46:06 · 280 阅读 · 0 评论 -
leetcode第123题python版买卖股票的最佳时机III两区间法
123. 买卖股票的最佳时机 III 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。...原创 2022-07-24 21:22:14 · 364 阅读 · 0 评论 -
leetcode第122题python版买卖股票的最佳时机II上升区间累加法
122. 买卖股票的最佳时机 II给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。返回 你能获得的 最大 利润 。 ...原创 2022-07-24 16:02:43 · 345 阅读 · 0 评论 -
leetcode第121题python版买卖股票的最佳时机一次遍历两次更新法
121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。...原创 2022-07-24 15:30:42 · 1617 阅读 · 0 评论 -
leetcode第92题python版反转链表头插法
92. 反转链表 II 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left原创 2022-07-24 14:27:38 · 351 阅读 · 0 评论 -
leetcode第110题python版平衡二叉树
110. 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。原创 2022-07-23 21:29:00 · 1463 阅读 · 0 评论 -
leetcode第65题python版有效数字
""" 有效数字(按顺序)可以分成以下几个部分: 1.一个 小数 或者 整数 2.(可选)一个 'e' 或 'E' ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: 1.(可选)一个符号字符('+' 或 '-') 2. 下述格式之一: 至少一位数字,后面跟着一个点 '.' 至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字 一个...原创 2022-07-23 12:04:33 · 205 阅读 · 0 评论 -
leetcode第64题python版最小路径和动态规划法
64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步原创 2022-07-22 13:21:43 · 525 阅读 · 0 评论 -
leetcode第63题python版不同路径II动态规划法
63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。...原创 2022-07-22 12:17:14 · 310 阅读 · 0 评论 -
leetcode第62题python版不同路径动态规划法
62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?...原创 2022-07-19 21:59:26 · 159 阅读 · 0 评论 -
leetcode第61题python版旋转链表
61. 旋转链表给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。原创 2022-07-19 20:42:11 · 317 阅读 · 0 评论 -
leetcode第60题python版排列序列
60. 排列序列 给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列。...原创 2022-07-19 16:29:15 · 281 阅读 · 0 评论 -
leetcode第58题python版最后一个单词的长度
58. 最后一个单词的长度 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。...原创 2022-07-14 19:19:08 · 250 阅读 · 0 评论 -
leetcode第102题python版二叉树的层序遍历
102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。原创 2022-07-14 13:27:53 · 1800 阅读 · 1 评论 -
leetcode第57题python版插入区间
57. 插入区间 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。原创 2022-07-11 22:23:33 · 106 阅读 · 0 评论 -
leetcode第56题python版合并区间双指针法
56. 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间......原创 2022-07-11 15:01:30 · 224 阅读 · 0 评论 -
leetcode第59题python版螺旋矩阵II双层遍历法
59. 螺旋矩阵 II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。原创 2022-07-10 14:15:57 · 300 阅读 · 0 评论 -
leetcode第54题python版螺旋矩阵双层遍历法
54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。原创 2022-07-09 23:39:37 · 303 阅读 · 0 评论 -
leetcode第53题python版最大子数组和动态规划法
53. 最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分原创 2022-07-09 21:22:58 · 399 阅读 · 0 评论 -
leetcode第52题python版N皇后II回溯法
52. N皇后 II n皇后问题 研究的是如何将 n个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。原创 2022-07-09 18:05:25 · 127 阅读 · 0 评论 -
leetcode第51题python版N皇后回溯法
51. N 皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n皇后问题 研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的n皇后问题 的解决方案。每一种解法包含一个不同的n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。...原创 2022-07-09 17:55:13 · 432 阅读 · 0 评论