LeeCode刷题
Better Bench
CS博士;研究领域:类脑计算、连续学习、AI、数据挖掘、自然语言处理、数学建模,特长网球4.0
展开
-
【Leetcode刷题Python】1467. 两个盒子中球的颜色数相同的概率
桌面上有 2n 个颜色不完全相同的球,球上的颜色共有 k 种。给你一个大小为 k的整数数组 balls`,其中 balls[i] 是颜色为 i 的球的数量。所有的球都已经,前 n 个球放入第一个盒子,后 n 个球放入另一个盒子(请认真阅读示例 2 的解释部分)。注意:这两个盒子是不同的。例如,两个球颜色分别为,(请认真阅读示例 1 的解释部分)。请计算「两个盒子中球的颜色数相同」的情况的概率。来源:力扣(LeetCode)原创 2022-10-13 23:26:07 · 549 阅读 · 0 评论 -
【Leetcode刷题Python】50. Pow(x, n)
实现 Pow(x, n), 即计算 x 的整数 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:来源:力扣(LeetCode)原创 2022-10-13 23:23:46 · 573 阅读 · 0 评论 -
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
给定一个无序数组arr,找到数组中未出现的最小正整数例如arr = [-1, 2, 3, 4]。返回1返回5[要求]时间复杂度为O(n),空间复杂度为O(1)链接:https://www.nowcoder.com/questionTerminal/030cabe03d94484c819e87c2e38c41bd?来源:牛客网第一行为一个整数N。表示数组长度。接下来一行N个整数表示数组内的数输出一个整数表示答案示例1输入4-1 2 3 4输出1示例2输入41 2 3 4。原创 2022-10-13 23:21:06 · 2102 阅读 · 0 评论 -
【Leetcode刷题Python】73. 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。请使用 原地 算法。示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]提示:来源:力扣(LeetCode)原创 2022-10-13 23:19:50 · 444 阅读 · 0 评论 -
【Leetcode刷题Python】LeetCode 478. 在圆内随机生成点
极坐标变换的方法,随机一个半径长度ρ,[0,2π]内再随机一个角度θ,就可以得到一个圆内的点:x=ρ×cos(θ),y=ρ×sin(θ)。需要注意的是这个半径ρ需要从[0,r×r]内随机抽样然后再开方,不能直接从[0,r]上随机采样得到。因为圆的面积是π×r×r,正比于r的平方,必须从[0,r×r]内随机才能保证是整个圆面中的均匀分布。输出: [null, [-0.02493, -0.38077], [0.82314, 0.38945], [0.36572, 0.17248]]圆周上的一点被认为在圆内。原创 2022-10-13 23:18:36 · 695 阅读 · 0 评论 -
【Leetcode刷题Python】 LeetCode 2038. 如果相邻两个颜色均相同则删除当前颜色
总共有 n 个颜色片段排成一列,每个颜色片段要么是 'A' 要么是 'B' 。给你一个长度为 n 的字符串 colors ,其中 colors[i] 表示第 i 个颜色片段的颜色。Alice 和 Bob 在玩一个游戏,他们 轮流 从这个字符串中删除颜色。Alice 先手 。如果一个颜色片段为 'A' 且 相邻两个颜色 都是颜色 'A' ,那么 Alice 可以删除该颜色片段。Alice 不可以 删除任何颜色 'B' 片段。如果一个颜色片段为 'B' 且 相邻两个颜色 都是颜色 'B' ,那么 Bo原创 2022-10-13 23:17:20 · 312 阅读 · 0 评论 -
【Leetcode刷题Python】295. 数据流的中位数
中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。原创 2022-10-03 23:55:28 · 395 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 33. 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true来源:力扣(LeetCode)链接:https://leetcode.cn/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof著作权归领扣网络所有。原创 2022-10-03 23:36:24 · 480 阅读 · 1 评论 -
【Leetcode刷题Python】从列表list中创建一颗二叉树
从列表中,使用递归方法创建二叉树,每个节点最多有两个子节点,以索引去从列表中取子节点的值,i为根节点,左子节点的值为2×i+1,右子节点的值为2×i+2。原创 2022-10-03 22:05:31 · 1097 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-10-03 22:01:11 · 374 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 32 - II. 从上到下打印二叉树 II
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-10-03 21:08:07 · 214 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 32 - I. 从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],返回:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-10-03 20:49:56 · 360 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 30. 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:--> 返回 -3.--> 返回 0.--> 返回 -2.提示:各函数的调用总次数不超过 20000 次来源:力扣(LeetCode)链接:https://leetcode.cn/problems/bao-han-minhan-shu-de-zhan-lcof著作权归领扣网络所有。原创 2022-10-02 23:33:26 · 282 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4,1]输出:true来源:力扣(LeetCode)链接:https://leetcode.cn/problems/shu-de-zi-jie-gou-lcof著作权归领扣网络所有。原创 2022-10-02 23:24:50 · 220 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.来源:力扣(LeetCode)原创 2022-09-29 23:39:16 · 195 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof著作权归领扣网络所有。原创 2022-09-29 23:31:05 · 206 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 18. 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]原创 2022-09-29 23:21:12 · 186 阅读 · 0 评论 -
【Leetcode刷题Python】79. 单词搜索和剑指 Offer 12. 矩阵中的路径
给定一个 m x n 二维字符网格 board 和一个字符串单词 word。如果 word 存在于网格中,返回 true;否则,返回 false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。原创 2022-09-29 23:12:01 · 171 阅读 · 0 评论 -
【Leetcode刷题Python】滑雪路径消耗时间:Testing Round #16 (Unrated) C. Skier
在知能科技公司的笔试题中,出现过: 给一个字符串,N,S,W,E,分别代表上下左右。当走过一个没有走过的边时,花费5秒,如果走过这个边,则花费1秒。(注意:判断的是两点之间的距离,不是单纯的点).给你他的行动轨迹,求消耗的时间。例子1NNN15例子2NS6例子3WWEN16例子4WWEE12例子5NWNWS25来自题目:Testing Round #16 (Unrated) C. Skier。原创 2022-09-29 15:59:46 · 214 阅读 · 0 评论 -
【Leetcode刷题Python】1496.判断路径是否相交
给你一个字符串 path,其中 path[i] 的值可以是 ‘N’、‘S’、‘E’ 或者 ‘W’,分别表示向北、向南、向东、向西移动一个单位。你从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。如果路径在任何位置上与自身相交,也就是走到之前已经走过的位置,请返回 true;否则,返回 false。示例1输入:path = “NES”输出:false解释:该路径没有在任何位置相交。示例2输入:path = “NESWW”输出:true。原创 2022-09-29 11:38:21 · 267 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 11. 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]]。原创 2022-09-25 16:03:31 · 659 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:输出:[null,null,3,-1]示例 2:输入:输出:[null,-1,null,null,5,2]原创 2022-09-25 11:34:02 · 188 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[]给定 target = 5,返回 true。给定 target = 20,返回 false。原创 2022-09-12 15:58:47 · 353 阅读 · 0 评论 -
【Leetcode刷题Python】剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:输出:2 或 3。原创 2022-09-12 11:15:49 · 296 阅读 · 0 评论 -
【Leetcode刷题Python】1049. 最后一块石头的重量 II
有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x原创 2022-09-11 16:37:35 · 327 阅读 · 0 评论 -
【Leetcode刷题Python】494. 目标和
给你一个整数数组 nums 和一个整数 target。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1”。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最终目标和为 3。原创 2022-09-11 16:03:39 · 301 阅读 · 0 评论 -
【Leetcode刷题Python】5. 最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”原创 2022-09-11 10:33:20 · 674 阅读 · 0 评论 -
【Leetcode刷题Python】516. 最长回文子序列
给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例 1:输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb”。示例 2:输入:s = “cbbd”输出:2解释:一个可能的最长回文子序列为 “bb”。原创 2022-09-10 10:50:54 · 787 阅读 · 0 评论 -
【Leetcode刷题Python】1143. 最长公共子序列
给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。原创 2022-09-10 10:33:21 · 289 阅读 · 0 评论 -
【Leetcode刷题Python】718. 最长重复子数组
给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度。示例 1:输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3,2,1]。示例 2:输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]输出:5。原创 2022-09-10 09:42:49 · 482 阅读 · 0 评论 -
【Leetcode刷题Python】高效求递归中函数的调用次数(动态规划方法,顺丰笔试题)
2022年9月7号顺丰科技大数据和数据分析工程师笔试题。原创 2022-09-09 09:04:02 · 185 阅读 · 0 评论 -
【Leetcode刷题Python】416. 分割等和子集
给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11]。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。原创 2022-09-06 18:26:59 · 807 阅读 · 0 评论 -
【Leetcode刷题Python】674. 最长连续递增序列
给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l原创 2022-09-06 16:42:36 · 436 阅读 · 0 评论 -
【Leetcode刷题Python】300. 最长递增子序列
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4。示例 2:输入:nums = [0,1,0,3,2,3]输出:4。原创 2022-09-06 16:33:52 · 1322 阅读 · 0 评论 -
【Leetcode刷题Python】337. 打家劫舍 III
小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root。除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。如果 两个直接相连的房子在同一天晚上被打劫 ,房屋将自动报警。给定二叉树的 root。返回 在不触动警报的情况下 ,小偷能够盗取的最高金额。示例 1:输入: root = [3,2,3,null,3,null,1]输出: 7。原创 2022-09-06 11:33:35 · 412 阅读 · 0 评论 -
【Leetcode刷题Python】213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3。原创 2022-09-06 10:52:10 · 261 阅读 · 0 评论 -
【Leetcode刷题Python】198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。原创 2022-09-06 10:04:11 · 278 阅读 · 0 评论 -
【Leetcode刷题Python】174. 地下城游戏
一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);原创 2022-09-05 17:00:17 · 210 阅读 · 0 评论 -
【Leetcode刷题Python】96. 不同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1。原创 2022-09-05 16:00:20 · 121 阅读 · 0 评论 -
【Leetcode刷题Python】343. 整数拆分
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。返回 你可以获得的最大乘积。示例 1:输入: n = 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: n = 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。原创 2022-09-05 11:45:23 · 528 阅读 · 0 评论