python
文章平均质量分 75
Julse
不藏话,不藏事,不藏拙
展开
-
leetcode 373. 查找和最小的K对数字 - 不带visited数组的表格图遍历 - 字典嵌套初始化
文章目录思路方案1 基础代码 超时方案1 优化1 通过方案1 优化2 通过方案2 其他人的题解收获给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解原创 2021-10-28 15:57:59 · 242 阅读 · 0 评论 -
leetcode - LCP 42. 玩具套圈 -二分 -坐标映射 -区间查找 - 坐标范围快速查找
LCP 42. 玩具套圈「力扣挑战赛」场地外,小力组织了一个套玩具的游戏。所有的玩具摆在平地上,toys[i] 以 [xi,yi,ri] 的形式记录了第 i 个玩具的坐标 (xi,yi) 和半径 ri。小扣试玩了一下,他扔了若干个半径均为 r 的圈,circles[j] 记录了第 j 个圈的坐标 (xj,yj)。套圈的规则如下:若一个玩具被某个圈完整覆盖了(即玩具的任意部分均在圈内或者圈上),则该玩具被套中。若一个玩具被多个圈同时套中,最终仅计算为套中一个玩具请帮助小扣计算,他成功套中了多少玩具。原创 2021-09-18 15:47:37 · 276 阅读 · 0 评论 -
leetcode 218. 天际线问题 -困难题目- 矩形覆盖 -线段树 - 坐标离散
姊妹篇leetcode 223. 矩形面积 - 850. 矩形面积 II - 坐标投影 -线段覆盖 - 有效区间计算 -pow 指数计算 -含默认值的字典-有序列表-counter城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti 是第 i 座建筑物左边缘的 x原创 2021-09-15 15:21:09 · 392 阅读 · 2 评论 -
leetcode 162. 寻找峰值 -迭代爬坡-非有序列表上的二分
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem原创 2021-09-15 13:29:53 · 244 阅读 · 0 评论 -
leetcode 2002. 两个回文子序列长度的最大乘积 - 比特位 - 状态压缩
文章目录思路1 dfs 每个位置三种选择 - 超时思路1 dfs 根据回文串首尾字符串相等的特性优化思路2 dfs 短回文中插入字符或者回文 - 通过给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 。两个子序列在原字符串中如果没有任何相同下标的字符,则它们是 不相交 的。请你返回两个回文子序列长度可以达到的 最大乘积 。子序列 指的是从原字符串中删除若干个字符(可以一个也不删除)后,剩余字符不改变顺序而得到的结果。如果一个字符串从前往后读和从后往前读一模一样,原创 2021-09-14 17:31:52 · 441 阅读 · 0 评论 -
leetcode 223. 矩形面积 - 850. 矩形面积 II - 坐标投影 -线段覆盖 - 有效区间计算 -pow 指数计算 -含默认值的字典-有序列表-counter
223. 矩形面积给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示:第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。输入:ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2输出:45来源:力扣(Lee原创 2021-09-14 10:24:13 · 447 阅读 · 0 评论 -
leetcode1894. 找到需要补充粉笔的学生编号 -增量数组-取余-二分查找
一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。请你返回需原创 2021-09-10 11:00:02 · 134 阅读 · 0 评论 -
leetcode 264. 丑数 II - 动态规划
给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数。提示:1 <= n <= 1690来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ugly-number-ii原创 2021-09-09 14:10:37 · 226 阅读 · 0 评论 -
leetcode 502. IPO困难-大根堆 - 小根堆-有序列表
假设 力扣(LeetCode)即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。总而言之,从原创 2021-09-09 09:46:45 · 124 阅读 · 0 评论 -
leetcode 470. 用 Rand7() 实现 Rand10() -拒绝采样法
文章目录方法1 - 失败 - 部分数字得不到方法2 - 失败 - 生成的随机数不均匀方法3- 官方题解 - 通过方法4 - 通过 - 在官方题解基础上,使拒绝采样的区域尽可能小已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法。示例 1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]来源:力扣(原创 2021-09-05 16:31:19 · 201 阅读 · 0 评论 -
leetcode 剑指 Offer II 013. 二维子矩阵的和
给定一个二维矩阵 matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。实现 NumMatrix 类:NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化int sumRegion(int row1, int col1, int row2, int col2) 返回左上角 (row1, col1) 、右下角 (row2, col2) 的子矩阵的元素总和。示例 1:原创 2021-09-05 15:42:41 · 283 阅读 · 0 评论 -
leetcode 740. 删除并获得点数
给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入:nums = [3,4,2]输出:6解释:删除 4 获得 4 个点数,因此 3 也被删除。之后,删除 2 获得 2 个点数。总共获得 6 个点数来源:力扣(LeetCode)链接:https原创 2021-09-05 15:12:29 · 141 阅读 · 0 评论 -
leetcode1109. 航班预订统计-前缀和-增量-公交车上下客
这里有 n 个航班,它们分别从 1 到 n 进行编号。有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。请你返回一个长度为 n 的数组 answer,其中 answer[i] 是航班 i 上预订的座位总数。示例 1:输入:bookings = [[1,2,10],[2,3,20],[2,原创 2021-09-01 17:13:33 · 163 阅读 · 0 评论 -
leetcode 987. 二叉树的垂序遍历 - DFS -层次遍历 -测试用例 - 数组转二叉树
给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row + 1, col - 1) 和 (row + 1, col + 1) 。树的根结点位于 (0, 0) 。二叉树的 垂序遍历 从最左边的列开始直到最右边的列结束,按列索引每一列上的所有结点,形成一个按出现位置从上到下排序的有序列表。如果同行同列上有多个结点,则按结点的值从小到大进行排序。返回二叉树的 垂序遍历 序列。输入:root = [3,9,20原创 2021-08-28 19:02:01 · 195 阅读 · 1 评论 -
leetcode 295. 数据流的中位数 - 大根堆 - 小根堆 - 有序列表 - B树 B+ 树
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步参考文章:python中heapq的用法(最小堆) https://blog.csdn.net/weixin_42317507/article/details/92801893文章目录题目分析方法1 - 草图方法1 大根堆 小根堆 - 代码 - 通过方法2 有.原创 2021-08-27 23:54:40 · 505 阅读 · 0 评论 -
leetcode 1115. 交替打印FooBar - python 实现多进程通信 PV 操作
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步参考文章:python3 的多线程操作 https://www.runoob.com/python3/python3-multithreading.html文章目录题目分析题解 - 库函数调用信号量- 通过题解 - 手动实现信号量操作 - 超时我们提供一个类:.原创 2021-08-25 22:47:53 · 372 阅读 · 0 评论 -
leetcode 787. K 站中转内最便宜的航班
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录DFS - 超时dp - src到中转到dst的最小花费- 通过有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 pric.原创 2021-08-25 00:06:22 · 244 阅读 · 0 评论 -
leetcode 863. 二叉树中所有距离为 K 的结点 -结点向上调整
给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2输出:[7,4,1]解释:所求结点为与目标结点(值为 5)距离为 2 的结点,值分别为 7,4,以及 1来源:力扣(LeetCode)链接:https://leetcode-cn.com原创 2021-08-24 23:02:39 · 141 阅读 · 0 评论 -
leetcode 541. 反转字符串 II reversed小trick
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录手动反转 - 通过用库函数,间隔2k进行反转 - 通过给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 .原创 2021-08-23 22:53:06 · 129 阅读 · 0 评论 -
leetcode 789. 逃脱阻碍者 - 曼哈顿距离 - 欧式距离 - 明可夫斯基距离 Minkowski
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录题目分析题解小知识点 曼哈顿距离 - 欧式距离 - 明可夫斯基距离你在进行一个简化版的吃豆人游戏。你从 [0, 0] 点开始出发,你的目的地是 target = [xtarget, ytarget] 。地图上有一些阻碍者,以数组 gh.原创 2021-08-23 21:57:25 · 238 阅读 · 0 评论 -
leetcode 199. 二叉树的右视图 - RLH 遍历(先序遍历的倒序)- 层次遍历 - 初始化用例节点
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录题目分析RLH 遍历(先序遍历的倒序)层次遍历 layer初始化用例节点给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。输入: [1,2,3,null,5,null,4.原创 2021-08-23 21:17:14 · 144 阅读 · 0 评论 -
leetcode 236. 二叉树的最近公共祖先 -DFS
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录路径法标记法 - 记录每一个节点是不是p,q的公共节点给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q.原创 2021-08-23 16:16:12 · 134 阅读 · 0 评论 -
leetcode 96. 不同的二叉搜索树 -树的种数 -动态规划 -卡塔兰数
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。输入:n = 3输出:5输入:n = 3输出:5题目分析二叉搜索树性质:给定一串序列,生成唯一的一种二叉树总节点数目为i的时候,给定一个结点j 则j的左子树有j-1个结点,都比j小,有j-1种排列;右子树中有i-j 个结点,有i-j个结点,都比j大,有i-j种排列题解 - 通过class Solution: def numTrees(self, n:原创 2021-08-23 10:22:10 · 241 阅读 · 0 评论 -
leetcode LCP 19. 秋叶收藏集 - 动态规划
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录带条件的动态规划题解 - 通过小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶。出于美观整齐的考虑,小扣想.原创 2021-08-19 21:01:23 · 180 阅读 · 0 评论 -
leetcode 552. 学生出勤记录 II - DFS - DP数组-转移函数-矩阵快速幂
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:‘A’:Absent,缺勤‘L’:Late,迟到‘P’:Present,到场如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:按 总.原创 2021-08-18 22:05:22 · 230 阅读 · 0 评论 -
leetcode 576. 出界的路径数-DFS-库函数-动态规划
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录题目分析DFS - 超时DFS-字典实现备忘录-通过DFS- 库函数实现备忘录-通过DFS - 库函数 - 推导式 - 通过动态规划 - 通过运行效果给你一个大小为 m x n 的网格和一个球。球的起始坐标为 [startRow, s.原创 2021-08-17 22:32:57 · 248 阅读 · 0 评论 -
leetcode 526. 优美的排列 -二进制数-动态规划-全排列
题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第 i 位的数字能被 i 整除i.原创 2021-08-17 09:35:45 · 328 阅读 · 0 评论 -
leetcode 233. 数字 1 的个数
给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。示例 1:输入:n = 13输出:6示例 2:输入:n = 0输出:0解题思路以推算 4550 为案例,推算abcd数字的时候公式应该如何变动找到 不同位数区间的规律,发现0~m个9 区间中,有 m*(10^(m-1)) 个1 令 f(m) = m*(10^(m-1))如果m位a大于1,则带来 a*f(m)+10^m 个1如果m位a ==1,则带来 a*f(m) + bcd 个1如果m位a ==0, 则不原创 2021-08-14 18:30:46 · 197 阅读 · 0 评论 -
leetcode 446. 等差数列划分 II - 子序列 - 困难题目- 官方题解 - 动态规划 - DFS
题目来源:力扣(LeetCode)和传说链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢小伙伴们督促学习,一起进步给你一个整数数组 nums ,返回 nums 中所有 等差子序列 的数目。如果一个序列中 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该序列为等差序列。例如,[1, 3, 5, 7, 9]、[7, 7, 7, 7] 和 [3, -1, -5, -9] 都是等差序.原创 2021-08-12 22:50:31 · 417 阅读 · 0 评论 -
leetcode 516. 最长回文子序列
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢小伙伴们督促学习,一起进步给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb” 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromi原创 2021-08-12 22:07:20 · 147 阅读 · 0 评论 -
leetcode 1579. 保证图可完全遍历 - 并查集 - 公共图
题目来源:力扣(LeetCode)和传说链接:https://leetcode-cn.com/problems特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,QFIUNE@csdn感谢小伙伴们督促学习,一起进步关于数据结构整理非常详细的网站推荐https://oi-wiki.org/ds/dsu/相关文章leetcode 128. 最长连续序列 -数组-并查集leetcode 785. 判断二分图 - 并查集Alice 和 Bob 共有一个无向图,其中包含 n 个节.原创 2021-08-12 09:01:49 · 130 阅读 · 0 评论 -
leetcode 128. 最长连续序列 -数组-并查集
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步相关文章leetcode 581. 最短无序连续子数组 -双指针文章目录分析方法1 - 字典+ 并查集 - 超时方法2 字典+ 链表 - 通过方法3 哈希 O(n) 通过给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。示例 1:输入:nums = [1.原创 2021-08-11 14:23:59 · 423 阅读 · 0 评论 -
leetcode 785. 判断二分图 - 并查集
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录方法1 穷举,设置两个集合,判断每一个节点应该放哪一个集合- 超时方法2 并查集 - 通过方法3 深度优先 DFS - 通过方法4 宽度有限遍历 BFS 层次遍历 - 通过存在一个 无向图 ,图中有 n 个节点。其中每个节点都有一个介于 0 到 n - 1 之间的唯一编号。给你一个二维数组 graph ,其中 graph[u] 是一个节点数组,由节点 u 的邻接.原创 2021-08-11 13:59:53 · 247 阅读 · 0 评论 -
leetcode 581. 最短无序连续子数组 -双指针
给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shortest-unsorted-continuous-s原创 2021-08-07 17:14:06 · 129 阅读 · 0 评论 -
面试题 08.12. 八皇后 -对角线的特征和标记方法
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步分析N个皇后放N*N的棋盘,必然一行只能放一个放一个皇后之后, 该皇后所在的行,列,左对角,右对角方向的位置不能使用第一行有N种放法,每一种尝试一下,就尝试完了全体情况递归的时候就考虑, 当前行放置皇后之后,标记不能使用的位置,如果所有皇后都放入棋盘,说明这个方案是可行的.对角线特征: (i,j)所在左对角线: i1+j1 = i+j = D1,右对角线 j1.原创 2021-08-07 16:51:32 · 557 阅读 · 0 评论 -
leetcode 611. 有效三角形的个数 -二分查找最大边
给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-triangle-number解法1: 排序+二分+双重for循环-通过给出三角形的两个边,在排序好的空间上,二分查找使三角形成立的最大边,然后计算个数cl原创 2021-08-07 16:34:20 · 176 阅读 · 0 评论 -
leetcode 847. 访问所有节点的最短路径 -比特位表示访问情况-双端队列和字典初始值设置-BFSvsDFS- 2log2(n) vs n
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步847. 访问所有节点的最短路径存在一个由 n 个节点组成的无向连通图,图中的节点按从 0 到 n - 1 编号。给你一个数组 graph 表示这个图。其中,graph[i] 是一个列表,由所有与节点 i 直接相连的节点组成。返回能够访问所有节点的最短路径的长度。你可以在任一节点开始和停止,也可以多次重访节点,并且可以重用边。来源:力扣(LeetCode)链接:.原创 2021-08-07 16:19:47 · 234 阅读 · 0 评论 -
leetcode 802. 找到最终的安全状态 - 有向图找环 - 计算出度- 图反向-数组转置-星号使用-zip函数
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步802. 找到最终的安全状态在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走。如果到达的节点是终点(即它没有连出的有向边),则停止。对于一个起始节点,如果从该节点出发,无论每一步选择沿哪条有向边行走,最后必然在有限步内到达终点,则将该起始节点称作是 安全 的。返回一个由图中所有安全的起始节点组成的数组作为答案。答案数组中的元素应当按 升序.原创 2021-08-07 15:59:39 · 274 阅读 · 0 评论 -
leetcode 743. 网络延迟时间- 有向图 - 图的一些小知识点 - 迪杰斯特拉(dijkstra)-弗洛伊德(Floyd)
特别鸣谢:来自夸夸群的 醉笑陪公看落花@知乎,王不懂不懂@知乎,感谢醉笑陪公看落花@知乎 倾囊相授,感谢小伙伴们督促学习,一起进步文章目录问题描述迪杰斯特拉方法实现示意图 (dijkstra)代码实现问题描述有 n 个网络节点,标记为 1 到 n。给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。现在,从某个节点 K 发出一个信号。需要多久才能使.原创 2021-08-02 23:02:48 · 372 阅读 · 0 评论 -
剑指 Offer 47. 礼物的最大价值 两种解法-带备忘录的递归实现DFS和 动态规划
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/li-wu原创 2021-08-02 22:52:44 · 260 阅读 · 0 评论