
LeetCode
文章平均质量分 69
GrowthDiary007
我一名在校大学生,也是一名程序员,热爱学习,热爱编程,热爱分享。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode: 高频链表题目总结 - Python
LeetCode:高频链表题目总结。原创 2023-09-14 12:56:47 · 454 阅读 · 0 评论 -
LeetCode: 数组峰值与谷值问题总结 - Python
LeetCode:数组峰值与谷值问题总结。原创 2023-09-14 12:15:37 · 395 阅读 · 0 评论 -
LeetCode:658. 找到 K 个最接近的元素 - Python
给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。原创 2023-09-13 23:40:40 · 317 阅读 · 0 评论 -
LeetCode:1277. Count Square Submatrices with All Ones - Python
1277. 统计全为 1 的正方形子矩阵问题描述:给你一个 m * n的矩阵,矩阵中的元素不是 0就是 1,请你统计并返回其中完全由 1组成的 正方形子矩阵的个数。示例 1:输入:matrix =[[0,1,1,1],[1,1,1,1],[0,1,1,1]]输出:15解释:边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个...原创 2020-02-01 12:15:15 · 1198 阅读 · 0 评论 -
LeetCode:1293. Shortest Path in a Grid with Obstacles Elimination - Python
1293. 网格中的最短路径问题描述:给你一个 m * n 的网格,其中每个单元格不是0(空)就是1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。如果您 最多 可以消除k个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。示例 1:输入:grid = [[0,0,0], [...原创 2019-12-29 20:12:01 · 1024 阅读 · 0 评论 -
LeetCode:1287. Element Appearing More Than 25% In Sorted Array - Python
1287. 有序数组中出现次数超过25%的元素问题描述:给你一个非递减的有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的25%。请你找到并返回这个整数示例 :输入:arr = [1,2,2,6,6,6,6,7,10]输出:6问题分析:先看问题,题目已经给出很多限制条件,例如非负数整数等,这就少考了虑很多因素。题目给出的链表存储的整数,具体的解决过程...原创 2019-12-16 22:09:46 · 532 阅读 · 0 评论 -
LeetCode:37. Sudoku Solver - Python
问题描述:请编写一个程序,通过填充空单元格来解决数独问题。一个数独的解法需遵循如下规则:(1)数字 1-9 在每一行只能出现一次。(2)数字 1-9 在每一列只能出现一次。(3)数字 1-9 在每一个以粗实线分隔的 3x3 宫格内只能出现一次。空白格用 '.' 表示。 图1. 左边一个数独,右边答案(答案被标记成红色)注:给定的数独序列只包含数字 1-9 和字符 '.' 。你可以假设给定的数独只...原创 2018-06-20 18:18:07 · 1750 阅读 · 0 评论 -
LeetCode:854. K-Similar Strings - Python
题目描述:如果可以通过将 A 中的两个小写字母精确地交换位置 K 次得到与 B 相等的字符串,我们称字符串 A 和 B 的相似度为 K(K 为非负整数)。给定两个字母异位词 A 和 B ,返回 A 和 B 的相似度 K 的最小值。示例 1:输入:A = "ab", B = "ba"输出:1示例 2:输入:A = "abc", B = "bca"输出:2示例 3:输入:A = "abac",...原创 2018-06-22 16:32:00 · 2412 阅读 · 0 评论 -
字符串的编辑距离(LeetCode: 72. Edit Distance)-动态规划-Python
问题描述:给定两个字符串A和B,要用最少的操作将字符串A转换成字符串B。其中字符串操作包括:(1)删除一个字符(Insert a character)(2)插入一个字符(Delete a character)(3)修改一个字符(Replace a character)将字符串A转换成B串所用的最少字符操作数称为字符串A到 B的编辑距离,又称为Levenshtein距离,在1965年,俄罗斯数学家V...原创 2018-06-17 16:45:42 · 4045 阅读 · 0 评论 -
LeetCode: 410. 分割数组的最大值 - Python
分割分数的最小值题目描述:给n个正整数a1, a2, a3, ... ... an,将n个数顺序排成一列后分割成m段,每一段的分数被记为这段内所有数的和,该次分割的分数则被记为m段分数的最大值。问所有的分割方案中分割分数的最小值是多少?其实本题,就是LeetCode的 410. Split Array Largest Sum。问题分析:二分查找(Binary Search)1、所给的数子都是正整数...原创 2018-05-27 19:37:36 · 2280 阅读 · 4 评论 -
LeetCode:115. Distinct Subsequences - Python
问题描述:给定一个字符串S和一个字符串T,计算在S的子序列中T出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE"是"ABCDE"的一个子序列,而"AEC"不是)示例1:输入: S = "rabbbit", T = "rabbit"输出:3解释:如下图所示, 有 3 种可以从 S 中得...原创 2018-06-24 15:01:24 · 1203 阅读 · 2 评论 -
LeetCode:687. Longest Univalue Path - Python
题目描述:Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root.Note: The length of path between two nodes ...原创 2018-06-25 10:27:30 · 1165 阅读 · 0 评论 -
LeetCode:188. Best Time to Buy and Sell Stock IV - Python
LeetCode:188. Best Time to Buy and Sell Stock IV(买卖股票的最佳时机 )问题描述:给定一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成k笔交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入: [2,4,1], k = 2输出: 2...原创 2018-07-03 10:35:52 · 2054 阅读 · 1 评论 -
LeetCode: 3. 无重复字符的最长子串 - Python
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。原创 2018-06-18 11:24:07 · 740 阅读 · 1 评论 -
LeetCode:726. Number of Atoms - Python
问题描述:给定一个化学式formula(作为字符串),返回每种原子的数量。原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。例如,H2O 和 H2O2 是可行的,但 H1O2 这个表达是不可行的。两个化学式连在一起是新的化学式。例如H2O2He3Mg4 也是化学式。...原创 2018-06-25 19:00:23 · 1334 阅读 · 2 评论 -
LeetCode:38. Count and Say - Python
问题描述:38. 报数报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11被读作"two 1s"("两个一"), 即21。21被读作"one 2", "one 1"(&原创 2018-07-08 10:06:21 · 1177 阅读 · 1 评论 -
CodeJam Old Magician - 异或运算的应用
问题描述:A magician does the following magic trick. He puts W white balls and B black balls in his hat and asks someone from the audience, say Bob, to remove pairs of balls in whatever order Bob would des...原创 2018-06-26 11:34:03 · 585 阅读 · 2 评论 -
基础算法-学习整理-1
题号 英文名 中文名 级别 标签1 标签2 标签3 3 Longest Substring Without Repeating Characters 无重复字符的最长子串 中等 哈希表 双指针 字符串 16 3Sum Closest 最接近的三数之和 中等 数组 双指针 17 Lett...原创 2018-07-09 21:46:11 · 2162 阅读 · 1 评论 -
LeetCode:215. Kth Largest Element in an Array - Python
问题描述:数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。问题分析:这个题目...原创 2018-06-26 20:15:24 · 2993 阅读 · 0 评论 -
LeetCode:22. Generate Parentheses - Python
问题描述:括号生成给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]问题分析:使用回溯法,现在要知道一个事情,在生成的有效的字符串过程中,左括号 '(' 在前且个数大于右括号 ')' 的个数。说白就是...原创 2018-07-09 09:37:34 · 1052 阅读 · 0 评论 -
LeetCode:Brainteaser Problems
LeetCode:292. Nim Game问题描述:292. Nim 游戏你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会...原创 2018-06-27 11:09:33 · 2591 阅读 · 0 评论 -
LeetCode:32. Longest Valid Parentheses - Python
问题描述:最长有效括号给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"问题分析:看到这个问题的时候,第一想法就是那个最长回文子串问题,也就是可以使用动态规划的思想来解决。大概过程如下:(1)设 dp...原创 2018-07-09 19:48:08 · 2094 阅读 · 2 评论 -
LeetCode:867. Transpose Matrix - Python
问题描述:转置矩阵给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:1 <= A...原创 2018-07-09 22:49:58 · 1436 阅读 · 0 评论 -
LeetCode:48. Rotate Image - Python
问题描述:旋转图像给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]...原创 2018-07-10 10:13:31 · 1086 阅读 · 0 评论 -
LeetCode:859. Buddy Strings - Python
问题描述:亲密字符串给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。示例 1:输入: A = "ab", B = "ba"输出: true示例 2:输入: A = "ab", B = "ab"输出: false示例 3:输入: A = "aa", B = "aa"输出: tru原创 2018-07-10 13:37:36 · 1798 阅读 · 0 评论 -
LeetCode:41. First Missing Positive - Python
问题描述:41. 缺失的第一个正数给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。问题分析:Python实现:...原创 2018-06-28 11:20:57 · 1082 阅读 · 0 评论 -
LeetCode:28. Implement strStr() - KMP算法 - Python
问题描述:实现 strStr() 函数给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba...原创 2018-07-03 16:59:43 · 998 阅读 · 0 评论 -
LeetCode:19. Remove Nth Node From End of List - Python
问题描述:删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。 进阶:你能尝试使用一趟扫描实现吗?问题分析:简单直接给出答案。(1)设置两个指针,一个在前,...原创 2018-07-10 16:56:23 · 1098 阅读 · 0 评论 -
LeetCode:Best Time to Buy and Sell Stock(1-3) - Python
121. Best Time to Buy and Sell Stock(买卖股票的最佳时机)问题描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买...原创 2018-06-28 23:31:34 · 1159 阅读 · 0 评论 -
LeetCode:24. Swap Nodes in Pairs - Python
题目描述:两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。问题分析:不的不承认,链表操作、指针操作还是有待加强的,看似简单的问题,做起来并没有那么得心...原创 2018-07-11 10:50:48 · 1332 阅读 · 1 评论 -
LeetCode:407. Trapping Rain Water II - Python
问题描述:407. 接雨水 II给定一个m x n的矩阵,其中的值均为正整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 说明: m 和 n 都是小于110的整数。每一个单位的高度都大于0 且小于 20000。 示例:给出如下3x6 的高度图:[ [1,4,3,1,3,2], [3,2,1,3,2,4], [2,3,3,2,3,1] ] ...原创 2018-07-17 22:31:47 · 2451 阅读 · 0 评论 -
LeetCode:46. Permutations - Python
问题描述:全排列给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]问题分析:使用回溯法,我们每次选择一个数出来,然后把剩下的数,再选择一个出来,依次类推,选到头,就回溯到上一层。其实仔细想想就是深度优先搜索方法。Python...原创 2018-07-12 10:12:36 · 2150 阅读 · 0 评论 -
LeetCode:16. 3Sum Closest - Python
问题描述:最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).问题分析:与15题相似...原创 2018-07-06 11:08:26 · 688 阅读 · 0 评论 -
LeetCode:47. Permutations II - Python
问题描述: 全排列 II给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]问题分析:还是回溯法,只是这次,在进行深度优先搜索的之前,先进行一次排序,目的就是为了把相同的数字放到一起,在每层选择中,如果同数字出现重复,那么就选择一次,并依次类推。走到头,添加到输出数组,并回溯到上一层...原创 2018-07-12 20:52:19 · 2407 阅读 · 0 评论 -
LeetCode:17. Letter Combinations of a Phone Number - Python
问题描述:电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:原创 2018-07-06 23:20:24 · 958 阅读 · 0 评论 -
LeetCode:860. Lemonade Change - Python
问题描述:柠檬水找零在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[...原创 2018-07-07 14:50:33 · 1064 阅读 · 0 评论 -
LeetCode:862. Shortest Subarray with Sum at Least K - Python
问题描述:和至少为 K 的最短子数组返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1 。示例 1:输入:A = [1], K = 1输出:1示例 2:输入:A = [1,2], K = 4输出:-1示例 3:输入:A = [2,-1,2], K = 3输出:3提示:1 <=...原创 2018-07-07 21:20:12 · 1956 阅读 · 2 评论 -
LeetCode:11. Container With Most Water - Python
问题描述:11. 盛最多水的容器给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。问题分析:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (...原创 2018-07-14 08:32:24 · 1581 阅读 · 0 评论 -
LeetCode:871. Minimum Number of Refueling Stops - Python
问题描述:871. 最低加油次数 汽车从起点出发驶向目的地,该目的地位于出发位置东面 target英里处。沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 station[i][1] 升汽油。假设汽车油箱的容量是无限的,其中最初有 startFuel 升燃料。它每行驶 1 英里就会用掉 1 升汽油。当汽车到达...原创 2018-07-25 23:39:04 · 1661 阅读 · 0 评论 -
LeetCode:42. Trapping Rain Water - Python
问题描述:42. 接雨水给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。感谢 Marcos贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6问题分析:方法一,我们观察其中...原创 2018-07-14 22:16:46 · 3721 阅读 · 1 评论