力扣
文章平均质量分 59
7TribeZ
我最缺的就是时间
展开
-
【二分】剑指 Offer II 069. 山峰数组的顶部
剑指 Offer II 069. 山峰数组的顶部难度简单49符合下列属性的数组arr称为山峰数组(山脉数组):arr.length >= 3 存在i(0 < i< arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i+1] > ... > arr[arr.length - 1] 给定由整数组成的山峰数组arr,返回任何满足...原创 2021-10-14 21:32:15 · 70 阅读 · 0 评论 -
【双栈实现队列】剑指 Offer 09. 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列难度简单330用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入...原创 2021-10-14 21:30:47 · 111 阅读 · 0 评论 -
【位运算】【递归】371. 两整数之和
371. 两整数之和难度中等520给你两个整数a和b,不使用运算符+和-,计算并返回两整数之和。示例 1:输入:a = 1, b = 2输出:3示例 2:输入:a = 2, b = 3输出:5提示:-1000 <= a, b <= 1000通过次数73,812提交次数121,608解析:力扣https://leetcode-cn.com/problems/sum-of-two-integers/solution/...原创 2021-09-26 20:15:58 · 82 阅读 · 0 评论 -
【动态规划】583. 两个字符串的删除操作
给定两个单词word1和word2,找到使得word1和word2相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例:输入: "sea", "eat"输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea"提示:给定单词的长度不超过500。给定单词中的字符只含有小写字母。解析:力扣https://leetcode-cn.com/problems/delete-operation-for-two-strings/so...原创 2021-09-25 11:50:31 · 99 阅读 · 0 评论 -
【动态规划】1143. 最长公共子序列
1143. 最长公共子序列难度中等689给定两个字符串text1和text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace"是"abcde"的子序列,但"aec"不是"abcde"的子序列。两个字符串的公共子序列是这两个字符串所共同拥有的子序列。示例 1:输入...原创 2021-09-25 11:48:51 · 87 阅读 · 0 评论 -
【李宏毅机器学习】(二)误差梯度下降
Back to ML_Step 2 :define loss from training data那接下来进入第二步了,我们要定 Loss,有了新的这个 Model 以后,我们 Loss 没有什麼不同,定义的方法是一样的,只是我们的符号改了一下,之前是 L ( w 跟 b ),因為 w 跟 b 是未知的,那我们现在接下来的未知的参数很多了,你再把它一个一个列出来,太累了,所以我们直接用 θ 来统设所有的参数,所以我们现在的 Loss Function 就变成这个 Loss Function原创 2021-09-17 18:56:03 · 295 阅读 · 0 评论 -
【字典树】208. 实现 Trie (前缀树)
208. 实现 Trie (前缀树)难度中等886Trie(发音类似 "try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie()初始化前缀树对象。 void insert(String word)向前缀树中插入字符串word。 boolean search(String word)如果字符串word在前缀树中,返回true(即,在检索之前已经插入);否...原创 2021-09-17 00:35:56 · 115 阅读 · 0 评论 -
【非有序的二分】162. 寻找峰值
162. 寻找峰值难度中等516峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。你必须实现时间复杂度为O(log n)的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例2:输入:nums = [1,...原创 2021-09-15 00:52:31 · 101 阅读 · 0 评论 -
678. 有效的括号字符串
678. 有效的括号字符串难度中等383给定一个只包含三种字符的字符串:(,)和*,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号(必须有相应的右括号)。 任何右括号)必须有相应的左括号(。 左括号(必须在对应的右括号之前)。 *可以被视为单个右括号),或单个左括号(,或一个空字符串。 一个空字符串也被视为有效字符串。示例 1:输入: "()"输出: True示例 2:输入: "(*)"输出: T...原创 2021-09-13 21:02:46 · 135 阅读 · 0 评论 -
【贪心+优先队列】502. IPO
502. IPO难度困难171假设 力扣(LeetCode)即将开始IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多k个不同的项目。帮助 力扣 设计完成最多k个不同项目后得到最大总资本的方式。给你n个项目。对于每个项目i,它都有一个纯利润profits[i],和启动该项目需要的最小资本capital[i]。最初,你的资本为w。当你完成一个项目时,你将获得纯利润,且...原创 2021-09-08 20:02:27 · 92 阅读 · 0 评论 -
【贪心】605. 种花问题
605. 种花问题难度简单381假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组flowerbed表示花坛,由若干0和1组成,其中0表示没种植花,1表示种植了花。另有一个数n,能否在不打破种植规则的情况下种入n朵花?能则返回true,不能则返回false。示例 1:输入:flowerbed = [1,0,0,0,1], n = 1输出:true示例 2:...原创 2021-09-07 12:57:33 · 74 阅读 · 0 评论 -
【贪心】1221. 分割平衡字符串
1221. 分割平衡字符串难度简单127在一个平衡字符串中,'L'和'R'字符的数量是相同的。给你一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。注意:分割得到的每个字符串都必须是平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL"、"RRLL"、"RL"、"RL" ,每个子字符串中都包含相同数量的 'L' 和 'R' 。示例 2:输入:s = "...原创 2021-09-07 11:28:36 · 77 阅读 · 0 评论 -
704. 二分查找
704. 二分查找难度简单389给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums ...原创 2021-09-06 20:52:30 · 92 阅读 · 0 评论 -
【每日一题】802. 找到最终的安全状态
802. 找到最终的安全状态难度中等241在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走。如果到达的节点是终点(即它没有连出的有向边),则停止。对于一个起始节点,如果从该节点出发,无论每一步选择沿哪条有向边行走,最后必然在有限步内到达终点,则将该起始节点称作是安全的。返回一个由图中所有安全的起始节点组成的数组作为答案。答案数组中的元素应当按升序排列。该有向图有n个节点,按0到n - 1编号,其中n是graph的节点数。图以下述...原创 2021-08-05 23:07:00 · 117 阅读 · 0 评论 -
【每日一题】611. 有效三角形的个数
611. 有效三角形的个数难度中等271给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是: 2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。 数组里整数的范围为 [0, 1000]。解:排序+二分查找class Solution {public: int triangleNumb..原创 2021-08-04 23:20:52 · 96 阅读 · 0 评论 -
【位运算,极简解法】231. 2 的幂
目录我的解评论区优质回答231. 2 的幂难度简单给你一个整数n,请你判断该整数是否是 2 的幂次方。如果是,返回true;否则,返回false。如果存在一个整数x使得n == 2x,则认为n是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false示例 4:输入:n = 4输出...原创 2021-05-30 10:43:37 · 80 阅读 · 0 评论 -
1732. 找到最高海拔
1732. 找到最高海拔难度简单有一个自行车手打算进行一场公路骑行,这条路线总共由n + 1个不同海拔的点组成。自行车手从海拔为0的点0开始骑行。给你一个长度为n的整数数组gain,其中gain[i]是点i和点i + 1的净海拔高度差(0 <= i < n)。请你返回最高点的海拔。示例 1:输入:gain = [-5,1,5,0,-7]输出:1解释:海拔高度依次为 [0,-5,-4,1,1,-6] 。最高海拔为 1 。示例 2:...原创 2021-05-09 00:03:55 · 226 阅读 · 0 评论 -
【模拟】1486. 数组异或操作
目录简单的模拟代码简单的模拟1486. 数组异或操作难度简单给你两个整数,n和start。数组nums定义为:nums[i] = start + 2*i(下标从 0 开始)且n == nums.length。请返回nums中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8...原创 2021-05-07 11:45:25 · 103 阅读 · 0 评论 -
【位运算】1720. 解码异或后的数组
目录简单题我重拳出击C++中位运算的使用方法代码简单题我重拳出击1720. 解码异或后的数组难度 简单未知整数数组arr由n个非负整数组成。经编码后变为长度为n - 1的另一个整数数组encoded,其中encoded[i] = arr[i] XOR arr[i + 1]。例如,arr = [1,0,2,1]经编码后得到encoded = [1,2,3]。给你编码后的数组encoded和原数组arr的第一个元素fi...原创 2021-05-06 23:18:13 · 69 阅读 · 0 评论 -
7. 整数反转
家人们,我出息了,有生之前系列题目7. 整数反转难度简单2739给你一个 32 位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1],就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:...原创 2021-05-03 01:34:16 · 146 阅读 · 0 评论 -
【哈希表】554. 砖墙
目录Python collection模块哈希表代码554. 砖墙难度中等你的面前有一堵矩形的、由n行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。你现在要画一条自顶向下的、穿过最少砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组wall,该数组包含这堵墙的相关信息。其中,wall[i]是一个代表从左至右每块...原创 2021-05-03 00:17:55 · 7433 阅读 · 2 评论 -
【递归】690. 员工的重要性
690. 员工的重要性难度简单给定一个保存员工信息的数据结构,它包含了员工唯一的 id,重要度和直系下属的 id。比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]] ,员工 2的 数据结构是 [2, 10, [3]] ,员工 3 的数据结构是 [3, 5, []] 。注意虽然员工 3 也是员工 1 的一个下属,但是由于并不是直系下属,因此没有体现在员工 1 的数据结构中...原创 2021-05-01 21:40:48 · 82 阅读 · 0 评论 -
1588. 所有奇数长度子数组的和
1588. 所有奇数长度子数组的和难度简单给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。子数组定义为原数组中的一个连续子序列。请你返回arr中所有奇数长度子数组的和。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[1,4,2,5,3]...原创 2021-04-30 17:45:12 · 79 阅读 · 1 评论 -
1572. 矩阵对角线元素的和
1572. 矩阵对角线元素的和难度简单给你一个正方形矩阵mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。示例 1:输入:mat = [[1,2,3], [4,5,6], [7,8,9]]输出:25解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25请注意,元素 mat[1][1] = 5 只会被计算一次。示例 2:输入:mat = [[1...原创 2021-04-30 17:19:47 · 251 阅读 · 1 评论 -
137. 只出现一次的数字 II
137. 只出现一次的数字 II难度中等给你一个整数数组nums,除某个元素仅出现一次外,其余每个元素都恰出现三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99提示:1 <= nums.length <= 3 * 104 -231<= nums[i] <= 231- 1 nums中,除某...原创 2021-04-30 02:59:38 · 309 阅读 · 0 评论 -
【双指针】633.平方数之和
目录枚举更好的写法 c++双指针633. 平方数之和难度中等给定一个非负整数c,你要判断是否存在两个整数a和b,使得a2+ b2= c。示例 1:输入:c = 5输出:true解释:1 * 1 + 2 * 2 = 5示例 2:输入:c = 3输出:false示例 3:输入:c = 4输出:true示例 4:输入:c = 2输出:true示例 5:输入:c = 1输出:true...原创 2021-04-29 00:23:54 · 200 阅读 · 0 评论 -
【二叉树搜索】938. 二叉搜索树的范围和
938. 二叉搜索树的范围和难度简单给定二叉搜索树的根结点root,返回值位于范围[low, high]之间的所有结点的值的和。示例 1:输入:root = [10,5,15,3,7,null,18], low = 7, high = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], low = 6, high = 10输出:23提示:树中节点数目在范围[1, 2 * 104]...原创 2021-04-27 11:46:45 · 349 阅读 · 1 评论 -
【二维前缀和】304. 二维区域和检索 - 矩阵不可变
目录题目前缀和解法(二维)二维vector 定义这道题是「303. 区域和检索 - 数组不可变」的进阶,第 303 题是在一维数组中做区域和检索,这道题是在二维矩阵中做区域和检索。题目304. 二维区域和检索 - 矩阵不可变难度中等254给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为(row1,col1),右下角为(row2,col2)。上图子矩阵左上角(row1, col1) =(2, 1),右下角(row2, col...原创 2021-04-22 15:57:45 · 178 阅读 · 0 评论 -
【一维前缀和】303. 区域和检索 - 数组不可变
目录题目分析代码题目303. 区域和检索 - 数组不可变难度简单327给定一个整数数组 nums,求出数组从索引i到j(i≤j)范围内元素的总和,包含i、j两点。实现NumArray类:NumArray(int[] nums)使用数组nums初始化对象 int sumRange(int i, int j)返回数组nums从索引i到j(i≤j)范围内元素的总和,包含i、j两点(也就是sum(nums[i], nums[...原创 2021-04-22 15:53:55 · 84 阅读 · 0 评论 -
【每日一题】91. 解码方法(动态规划)
好题,有学到东西!贴个动态规划背包问题讲解,讲得很好https://www.bilibili.com/video/BV1K4411X766?from=search&seid=8015261114994618763题目91. 解码方法难度中等812一条包含字母A-Z的消息通过以下映射进行了编码:'A' -> 1'B' -> 2...'Z' -> 26要解码已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可...原创 2021-04-22 01:04:28 · 363 阅读 · 1 评论 -
【每日一题】28. 实现 strStr()
28. 实现 strStr()实现strStr()函数。给你两个字符串haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回-1 。说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回 0 。这与 C 语言的strstr()以及 Java 的indexOf()定义相符。...原创 2021-04-20 21:06:21 · 231 阅读 · 0 评论 -
【贪心】452. 用最少数量的箭引爆气球
难度 中等题目介绍:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为xstart,xend,且满足 xstart≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得...原创 2021-03-04 23:08:51 · 104 阅读 · 1 评论 -
【贪心】605. 种花问题
题目介绍:假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数n ,能否在不打破种植规则的情况下种入n朵花?能则返回 true ,不能则返回 false。示例 1:输入:flowerbed = [1,0,0,0,1], n = 1输出:true示例 2:输入:flowerbed ...原创 2021-03-03 22:35:34 · 398 阅读 · 1 评论 -
【贪心】435. 无重叠区间
难度 中等题目描述:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来.原创 2021-03-02 22:27:50 · 152 阅读 · 0 评论 -
【贪心】135. 分发糖果
难度 困难题目描述:老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。 评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:输入:[1,2,2]输出:4解释:你可以分别给这三个孩...原创 2021-03-02 21:21:13 · 101 阅读 · 0 评论 -
【贪心】455. 分发饼干
题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例1:输入: g = [1,2,3], s = [1,1]输出: 1解释:你有三个孩子和两块小饼干,3个孩...原创 2021-01-04 22:13:10 · 119 阅读 · 0 评论 -
283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。//双指针,左指针指向已处理序列末尾,右指针指向未处理序列头部//每次只将非零数和零交换void swap(int *a,int *b){ int temp=*a; *a=*b; *b=temp;}void moveZeroe原创 2020-11-25 23:45:22 · 129 阅读 · 0 评论 -
509. 斐波那契数
斐波那契数,通常用F(n) 表示,形成的序列称为斐波那契数列。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定N,计算F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1.示例 2:输入:3输出:2解释:F(3) = F(2) + F(1) = 1 + 1 = 2.示...原创 2020-11-25 00:27:49 · 75 阅读 · 0 评论 -
1332. 删除回文子序列
给你一个字符串s,它仅由字母'a' 和 'b'组成。每一次删除操作都可以从 s 中删除一个回文 子序列。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。示例 1:输入:s = "ababa"输出:1解释:字符串本身就是回文序列,只需要删除一次。示例 2:输入:...原创 2020-11-20 23:46:42 · 367 阅读 · 0 评论 -
766. 托普利茨矩阵
如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。给定一个M x N的矩阵,当且仅当它是托普利茨矩阵时返回True。示例1:输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:在上述矩阵中, 其对角线为:"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]"。各条对角线上的所有元素均相同, 因此答案是Tr...原创 2020-11-19 01:06:37 · 200 阅读 · 0 评论