![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题笔记
文章平均质量分 55
修炼之路
主要研究领域包括图像分类、目标检测、OCR、人脸识别等,搞过跨平台的深度学习模型的部署解决方案,设计过分布式的深度学习模型服务架构。
展开
-
Python实现对于给定的输入,保证和为 target 的不同组合数
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。下面对于这两种解决思路我们来使用代码进行实现。原创 2022-10-30 21:26:53 · 1021 阅读 · 0 评论 -
Python不开辟新的内存空间实现矩阵的转置、顺时针、逆时针旋转90度
a = [[1,2,3], [4,5,6], [7,8,9]]row = len(a)#实现矩阵的转置for i in range(row): for j in range(row): if j > i: a[i][j],a[j][i]=a[j][i],a[i][j]#实现矩阵逆时针旋转90度for i in range(row // 2): for j in range(i,row-1-i): .原创 2021-03-18 14:44:55 · 1417 阅读 · 0 评论 -
Python实现快速排序
利用快速排序来实现一个由小到大的数组排序,快速排序就是利用分治法的思想来分块处理def quick_sort(a,low,high): if low >= high: return a i = low j = high #定义基准,基准左边小于基数,右边大于基数 pivot = a[low] while i < j: #从后向前扫描 while i < j and a[j] > pivo原创 2021-03-18 10:35:42 · 8287 阅读 · 2 评论 -
Python实现删除排序数组中的重复项
题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。LeetCode原题地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/测试用例示例1给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。原创 2021-02-22 16:29:34 · 4987 阅读 · 0 评论 -
Python实现k个一组的链表反转
题目描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。LeetCode原题地址:https://leetcode-cn.com/problems/reverse-nodes-in-k-group/测试用例示例给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当原创 2021-02-17 20:25:19 · 1450 阅读 · 0 评论 -
Python实现反转链表
题目描述将链表进行反转Leetcode原题地址:https://leetcode-cn.com/problems/reverse-linked-list/测试用例输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL代码实现其实代码的实现原理很简单,只需要按照下面几个步骤即可实现链表的反转:保存上一个节点的节点信息反转节点的指向,将当前节点的next指向上一个节点,比如原链表是:1-&g原创 2021-02-17 11:16:47 · 7135 阅读 · 0 评论 -
Python实现两两交换链表中的节点
题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。Leetcode原题地址:https://leetcode-cn.com/problems/swap-nodes-in-pairs/测试用例示例1输入:head = [1,2,3,4]输出:[2,1,4,3]示例2输入:head = []输出:[]示例3输入:head = [1]输出:[1]代码实现遍历链表我们需要两两交原创 2021-02-06 21:57:56 · 1939 阅读 · 0 评论 -
Python实现合并K个升序链表
题目描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。Leetcode原题地址:https://leetcode-cn.com/problems/merge-k-sorted-lists/测试用例示例1输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链原创 2021-02-02 21:57:42 · 1874 阅读 · 0 评论 -
python生成对括号
题目描述数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。LeetCode原题地址:https://leetcode-cn.com/problems/generate-parentheses/submissions/测试用例示例1输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例2输入:n = 1输出:["()"]代码实现递归法这个算法的思想比较暴力,先遍历原创 2021-01-31 15:36:31 · 1037 阅读 · 0 评论 -
python实现合并两个有序列表
题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。LeetCode原题地址:https://leetcode-cn.com/problems/merge-two-sorted-lists/测试用例示例1输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例2输入:l1 = [], l2 = []输出:[]示例3输入:l1 = [], l2 = [0]输出:[0]代码详原创 2021-01-30 12:11:35 · 5110 阅读 · 2 评论 -
python实现有效的括号判断
题目描述给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。LeetCode原题地址:https://leetcode-cn.com/problems/valid-parentheses/测试用例示例 1输入:s = “()”输出:true示例 2输入:s = “()[]{}”输出:true示例 3输入:s = “(]”输出:f原创 2021-01-26 21:07:32 · 5934 阅读 · 2 评论 -
python删除链表的倒数第 N 个结点
题目描述给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。LeetCode原题地址:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/测试用例示例 1输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例2输入:head = [1], n = 1输出:[]示例3输入:head = [1,2], n = 1输出:[1]代码实现py原创 2021-01-25 22:50:31 · 2606 阅读 · 0 评论 -
python计算列表中最接近的四数之和
题目描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。LeetCode原题地址:https://leetcode-cn.com/problems/4sum/测试用例示例给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集原创 2021-01-23 11:43:48 · 670 阅读 · 0 评论 -
Python实现电话号码的数字组合
题目描述给定一个仅包含数字 2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。LeetCode原题地址:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/测试用例输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].代码实现回溯法实现from typin原创 2021-01-10 14:58:42 · 1283 阅读 · 0 评论 -
python计算列表中最接近的三数之和
题目描述给定一个包括 n 个整数的数组nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。LeetCode原题地址:https://leetcode-cn.com/problems/3sum-closest/测试用例示例输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。注意:3原创 2021-01-06 21:57:27 · 1491 阅读 · 0 评论 -
python求解符合条件的三数之和
题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。LeetCode原题地址:https://leetcode-cn.com/problems/3sum/测试用例示例给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]代码实现双指针原创 2021-01-05 21:56:27 · 1207 阅读 · 0 评论 -
python求解最长前缀公共子串
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。LeetCode原题地址:https://leetcode-cn.com/problems/longest-common-prefix/测试用例示例 1输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。代码实现原创 2021-01-04 23:15:00 · 1568 阅读 · 0 评论 -
python实现罗马数字转换为整数
题目描述上一篇文章中,我们介绍了将阿拉伯数字转换为罗马数字的方法,里面详细介绍了罗马数字的书写规则,请参考python实现将整数转换为罗马数字LeetCode原题地址:https://leetcode-cn.com/problems/roman-to-integer/测试用例示例 1输入: “III”输出: 3示例 2输入: “IV”输出: 4示例 3输入: “IX”输出: 9示例 4输入: “LVIII”输出: 58解释: L = 50, V=原创 2021-01-03 22:52:57 · 1162 阅读 · 0 评论 -
python实现将整数转换为罗马数字
题目描述罗马数字包含以下七种字符: I,V,X, L,C,D 和M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大原创 2021-01-01 11:56:43 · 4983 阅读 · 1 评论 -
Python求解盛水最多的容器
题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。LeetCode原题地址:https://leetcode-cn.com/problems/container-with-most-water/测试用例示例 1输入:[1,8,6,2,5,4,8,3,7]输出:4原创 2020-12-29 10:40:57 · 726 阅读 · 0 评论 -
python实现正则表达式匹配
题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。. 匹配任意单个字符* 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串 s的,而不是部分字符串。LeetCode原题地址:https://leetcode-cn.com/problems/regular-expression-matching/测试用例示例 1输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示原创 2020-12-28 21:24:58 · 8667 阅读 · 0 评论 -
python实现整数是否为回文数的判断
题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。LeetCode原题地址:https://leetcode-cn.com/problems/palindrome-number/测试用例示例 1输入: 121输出: true示例 2输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3输入: 10输出: false解释: 从右向左读,原创 2020-12-24 10:41:31 · 7698 阅读 · 0 评论 -
python实现将字符串转换为整数
题目描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是原创 2020-12-23 17:01:30 · 10464 阅读 · 0 评论 -
python实现整数反转
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。LeetCode原题地址:https://leetcode-cn.com/problems/reverse-integer/测试用例示例1输入: 123输出: 321示例 2输入: -123输出: -321示例 3输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那原创 2020-12-21 16:58:13 · 8447 阅读 · 0 评论 -
Python实现字符串的Z 字形变换
题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。LeetCode原题地址:https://leetcode-cn.com/problems/zigzag-conversion/测试用例比如输入字符串为"LEETCODEISHIRING" 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你原创 2020-12-21 10:41:38 · 1117 阅读 · 0 评论 -
python实现寻找最长回文子串
题目描述给定一个字符串s,找到 s中最长的回文子串。你可以假设s的最大长度为 1000。LeetCode原题地址:https://leetcode-cn.com/problems/longest-palindromic-substring/测试用例示例 1输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2输入: “cbbd”输出: “bb”解题代码和思路遍历所有子串寻找回文子串class Solution(object):原创 2020-12-17 17:01:07 · 4902 阅读 · 0 评论 -
python实现寻找两个正序数组的中位数
题目描述给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。原题地址:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/测试用例示例 1输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2输入:nums1 = [1,2], nums2 = [3,4]输出:2原创 2020-12-10 20:55:58 · 1357 阅读 · 0 评论