![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
领扣刷题
文章平均质量分 77
dayday学习
学习刷题,天天向上
展开
-
力扣_买卖股票的最佳时机 II
买卖股票的最佳时机 II1.简介2.解题思路2.1 动态规划2.2 贪心算法1.简介给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出原创 2021-05-17 10:06:18 · 302 阅读 · 0 评论 -
力扣删除链表中的节点
删除链表中的节点1.要求2.思路及代码片**这个题很有意思,它直接给了你要删除的节点了。就是node,给我们的这个node就是链表的一部分,直接在上面操作就可以了。如果是末尾节点,则不能使用该题解了,需要从头遍历到尾去删除指定的节点。**1.要求删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5...原创 2019-03-31 23:45:49 · 474 阅读 · 0 评论 -
力扣二叉树的最大深度---递归
二叉树的最大深度1.二叉树的最大深度2.思想及代码片思想很简单就是递归,取到最大的递归数,就行了。思想很简单。1.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。2.思想及代码片思想很简单就是递归...原创 2019-04-04 22:13:11 · 634 阅读 · 0 评论 -
力扣环形链表的两种解法
力扣环形链表1.要求2.思路及代码片思路1.将其每个节点储存到数组中,如果数组中有这个节点出现过就代表是环形的链表。反之则没有。2.思路及代码片思路2.利用双指针。一快一慢。如果是环形的,快的总会追上慢的,如果不是,则快的就会走到最后结束循环。1.要求给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 p...原创 2019-04-04 21:34:56 · 620 阅读 · 0 评论 -
基于python的最长公共前缀的实现
最长公共前缀1.要求2.思想及代码思路,同时遍历每个字符串。如果第一次就不同,就没有公共的前缀。如果字符串中字母相同则放入结果字符串中,不同就结束。代码片1.要求最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“...原创 2019-03-31 10:06:30 · 472 阅读 · 1 评论 -
力扣买卖股票的最佳时机 II
买卖股票的最佳时机 II思路:代码片给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格...原创 2019-03-26 20:19:32 · 813 阅读 · 0 评论 -
实现strStr()
@[TOC](实现 strStr() 函数)1.要求给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, n...原创 2019-03-30 22:08:20 · 112 阅读 · 0 评论 -
力扣验证二叉搜索树
验证二叉搜索树验证二叉搜索树要求思路代码片验证二叉搜索树要求给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: f...原创 2019-03-07 23:41:43 · 445 阅读 · 0 评论 -
力扣-- 无重复字符的最长子串
力扣-- 无重复字符的最长子串1. 无重复字符的最长子串2.解题思路思路1:思路2:1. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其...原创 2019-03-11 11:12:09 · 532 阅读 · 0 评论 -
力扣分割回文串
分割回文串1.要求2.思路:列出所有的可能性分割,再去判断是否为回文串。代码片1.要求分割回文串给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]2.思路:列出所有的可能性分割,再去判断是否为回文串。代码片class Solution: d...原创 2019-03-06 23:56:31 · 365 阅读 · 0 评论 -
力扣验证回文串--python实现
验证回文串1. 验证回文串1.1 方法1:1.2 方法2:1.3 方法3:1. 验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false1....原创 2019-03-04 12:48:06 · 727 阅读 · 0 评论 -
力扣二叉树的层次遍历
力扣二叉树的层次遍历1.要求2.思想及代码1.要求二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]2.思想及代码思想就是BFS层次遍历。难的...原创 2019-04-06 21:36:11 · 773 阅读 · 0 评论 -
删除链表的倒数第N个节点
删除链表的倒数第N个节点1.要求2.思路及代码思路1.删除倒数第几个,转化为删除顺数第几个数,然后,在把相应的数个删除掉。代码片思路2.采用双指针的方法,其思想是通过第二个指针将删除节点找出来,然后处理节点链接代码片1.要求删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, ...原创 2019-04-02 00:03:58 · 465 阅读 · 0 评论 -
力扣动态规划
力扣动态规划1. 斐波那契数列70. 爬楼梯1要求2 思路198. 打家劫舍1要求2.思路2131 要求2.思路矩阵路径64. 最小路径和1 要求2.思路62. 不同路径1要求1. 斐波那契数列70. 爬楼梯1要求假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输...原创 2019-09-06 10:48:19 · 1596 阅读 · 0 评论 -
力扣搜索
力扣搜索BFS 广度优先搜索101. 对称二叉树1.要求2.思路279 完全平方数1 要求2 思路DFS 深度优先搜索backtracking 回溯BFS 广度优先搜索广度优先搜索:广度优先搜索一层一层地进行遍历,每层遍历都以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。需要注意的是,遍历过的节点不能再次被遍历。在程序实现 BFS 时需要考虑以下问题:队列:用来存储每一轮遍历得...原创 2019-09-06 09:05:19 · 458 阅读 · 0 评论 -
力扣分治
力扣分治241. 为运算表达式设计优先级1.要求2.思路95. 不同的二叉搜索树 II1.要求2 思路241. 为运算表达式设计优先级1.要求给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例 1:输入: “2-1-1”输出: [0, 2]解释:((2-1)-1) = ...原创 2019-09-04 14:44:17 · 341 阅读 · 0 评论 -
力扣二分查找
力扣二分查找704 二分查找1.要求2.思路69 x 的平方根1.要求744 寻找比目标字母大的最小字母1.要求2.思路540有序数组中的单一元素1.要求2.思路153. 寻找旋转排序数组中的最小值1.要求2.思路704 二分查找1.要求给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标...原创 2019-09-03 20:56:27 · 534 阅读 · 0 评论 -
力扣贪心算法
力扣贪心算法455. 分发饼干1.要求2.思路435. 无重叠区间1.要求2 思路455. 分发饼干1.要求假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这...原创 2019-09-03 16:45:53 · 1305 阅读 · 0 评论 -
力扣排序算法
力扣排序算法Kth Element 问题堆215. 数组中的第K个最大元素1.要求2. 思路Kth Element 问题用于求解 Kth Element 问题,也就是第 K 个元素的问题快速排序的 partition() 进行实现。需要先打乱数组,否则最坏情况下时间复杂度为 O(N2)堆用于求解 TopK Elements 问题,也就是 K 个最小元素的问题。可以维护一个大小为 K 的最...原创 2019-09-02 16:40:23 · 1294 阅读 · 0 评论 -
力扣---指针题
双指针167. 两数之和 II - 输入有序数组1.要求2.思路633. 平方数之和1.要求2.思路345. 反转字符串中的元音字母1.要求2.思路680. 验证回文字符串 Ⅱ1.要求2.思路88. 合并两个有序数组1.要求2.思路167. 两数之和 II - 输入有序数组1.要求给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index...原创 2019-09-02 09:59:13 · 943 阅读 · 0 评论 -
力扣回文链表
力扣回文链表1.要求2.思想及代码3.问题1.要求请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?2.思想及代码思想:本来想再用一个其他的字符串(或者链表)分别将其中的元素储存起来反转后再遍历比较一遍,...原创 2019-04-03 20:11:30 · 406 阅读 · 0 评论 -
力扣字符串中的第一个唯一字符
字符串中的第一个唯一字符思路思路1**1.将字符串循环一遍,找到次数为一次的。然后返回下标。找不到的返回-1。**代码片思路2**大佬的代码。 因为都是小写字母,所以给了一个所有字母的字符串,然后遍历所有的字母,如果字母在字符串s中出现的次数为一,然后记录到数组中去。然后找到最小索引的返回。如果没有就返回-1.**代码片思路3**看了大佬的代码。然后写了一个不使用数组的代码,执行效率还行,思路...原创 2019-03-29 13:05:45 · 347 阅读 · 0 评论 -
力扣107二叉树的层次遍历 II
二叉树的层次遍历 II1.要求2.思想及代码片思想和前一篇差不多,就是在将中间列表插入到res 最终结果表中时候总把后面的插入到前面(或者直接append,最终返回res[::-1])。1.要求给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],返回其自底向上的层次...原创 2019-04-08 12:48:23 · 293 阅读 · 0 评论 -
力扣--移除元素
移除元素1.移除元素要求2.思想思路1思路1代码片思路2思路2代码片1.移除元素要求给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,...原创 2019-03-08 15:41:13 · 561 阅读 · 0 评论 -
力扣合并两个有序数组
力扣合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3...原创 2019-03-02 23:40:08 · 486 阅读 · 0 评论 -
力扣整数反转
力扣整数反转要求给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路1思路...原创 2019-01-19 09:58:37 · 831 阅读 · 0 评论 -
力扣寻找两个有序数组的中位数
寻找两个有序数组的中位数要求给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, ...原创 2019-01-18 18:28:25 · 439 阅读 · 0 评论 -
力扣最长回文子串
力扣最长回文子串要求给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思路11.将所有可能的的最短循环的遍历去判断是否为回文2.将是回文的存入字典,然后取出最大的长度的那个字符串代码片class So...原创 2019-01-23 21:01:18 · 453 阅读 · 0 评论 -
力扣求解两数之和
求解两数之和要求给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思...原创 2019-01-13 14:45:12 · 633 阅读 · 0 评论 -
领扣根据字符出现频率排序
领扣根据字符出现频率排序要求给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此外,"aaaccc...原创 2019-01-13 14:08:23 · 345 阅读 · 0 评论 -
领扣有效的字母异位词
领扣有效的字母异位词有效的字母异位词思路1.将两个数组变成字典dict 并且记录次数两个字典相同就证明出现的字母的次数相同,就是yigouci代码片下面展示一些 内联代码片。思路11.将两个字符串放入dict中,并且记录次数,看两个dict是否相同class Solution: def isAnagram(self, s, t): ""&am原创 2019-01-13 10:08:49 · 118 阅读 · 0 评论 -
领扣 两个数组的交集 II
领扣 两个数组的交集 II两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以...原创 2019-01-12 21:16:00 · 317 阅读 · 0 评论 -
领扣判断是否有重复元素
领扣判断是否有重复元素存在重复元素给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true思路1.首先取出...原创 2019-01-12 20:54:39 · 144 阅读 · 0 评论 -
领扣快乐数
领扣快乐数 利用集合set 实现快乐数要求编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。__示例: __输入: 19输出: true解释:12 + 92 = 8282 + 22 = 68...原创 2019-01-12 20:29:02 · 206 阅读 · 0 评论 -
领扣利用set求解两个数组的交集
领扣利用set求解两个数组的交集两个数组的交集示例 1:示例 2:代码两个数组的交集给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4].输出结果中的每个元素一定是唯一的。.我们可以不...原创 2019-01-12 19:42:42 · 291 阅读 · 0 评论 -
力扣回文数
力扣回文数要求判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2019-01-20 10:51:06 · 588 阅读 · 0 评论 -
力扣二分查找
力扣二分查找思想二分查找是计算机科学中最基本、最有用的算法之一。 它描述了在有序集合中搜索特定值的过程。二分查找中使用的术语:目标 Target —— 你要查找的值索引 Index —— 你要查找的当前位置左、右指示符 Left,Right —— 我们用来维持查找空间的指标中间指示符 Mid —— 我们用来应用条件来确定我们应该向左查找还是向右查找的索引要求给定一个 n 个元素有...原创 2019-01-15 11:59:42 · 491 阅读 · 1 评论 -
力扣搜索二维矩阵II
搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, ...原创 2019-03-01 23:13:24 · 415 阅读 · 0 评论 -
力扣最小栈
最小栈设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);...原创 2019-03-01 09:23:30 · 405 阅读 · 0 评论 -
力扣环形链表
力扣环形链表要求给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0...原创 2019-01-28 10:09:28 · 437 阅读 · 0 评论