![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 73
Joyeeee.
这个作者很懒,什么都没留下…
展开
-
一枚菜鸟的leetcode刷题笔记 - Day17
344 - 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]class Solution: def reverseString(self, s: List[str]) -&原创 2021-01-29 09:19:00 · 223 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day16
237 - 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。class Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, modify node in-place instead. """ node.v原创 2021-01-28 18:07:48 · 247 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day15
235 - 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”本题的解法完全参考了 利用二叉搜索树的性质,一次递归二叉搜索树具有如下性质:若任意结点的左子树不空,则左子树上所有结点的值均不大于它的根结点的值。若任意结点的右子树不空,则右子树上所有结点的值均不小于它的根结点的原创 2021-01-27 21:58:35 · 188 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day14
215 - 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: nums.sort() #从小到大排列 return nums[-k]217 - 存在重复元素给定一个整数数组,判断是否存在重复元素。如果存在一值原创 2021-01-26 22:20:18 · 221 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day13
面试题 - 链表相交给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: listA = [] while headA is原创 2021-01-25 23:08:53 · 169 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day12
146 - LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它原创 2021-01-23 23:05:41 · 324 阅读 · 2 评论 -
一枚菜鸟的leetcode刷题笔记 - Day11
136 - 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?用数组/集合class Solution: def singleNumber(self, nums: List[int]) -> int: tmp = [] for n in nums: if n in tmp:原创 2021-01-22 22:38:57 · 275 阅读 · 1 评论 -
一枚菜鸟的leetcode刷题笔记 - Day10
124 - 二叉树中的最大路径和路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和。示例一:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkqxOCI3-1611197311847)(media/16081082147898/exx1.jpg)]输入:root = [1,2,3]输出:6解释:最优路径原创 2021-01-21 10:50:01 · 278 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day9
88 - 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小等于 m + n)来保存 nums2 中的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]class Solution:原创 2021-01-20 21:45:40 · 331 阅读 · 2 评论 -
一枚菜鸟的leetcode刷题笔记 - Day8
文章目录62 - 不同路径解法一:递归动态规划70 - 爬楼梯78 - 子集解法一:定义递归函数找到当前index开始的数组的所有子集解法二:对数组的每个元素考虑选或不选62 - 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?解法一:递归class Solution: def uniquePaths(self,原创 2021-01-19 17:33:46 · 390 阅读 · 1 评论 -
一枚菜鸟的leetcode刷题笔记 - Day7
54 - 螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: m, n = len(matrix), len(mat原创 2021-01-18 21:31:43 · 269 阅读 · 1 评论 -
一枚菜鸟的leetcode刷题笔记 - Day6
415 - 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。提示:num1 和num2 的长度都小于 5100num1 和num2 都只包含数字 0-9num1 和num2 都不包含任何前导零你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式class Solution: def str2num(self, s): num = 0 for i in range(len(s)):原创 2021-01-17 21:12:37 · 264 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day5
23 - 合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。class Solution: def merge2Lists(self, l1, l2): ''' l1 and l2 are two linked lists ''' head = ListNode() rehead = head while l1 and l2:原创 2021-01-16 16:10:17 · 214 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day4
16 - 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: n = len(nums) nums.sort() ans = float原创 2021-01-15 22:46:23 · 177 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day 3
15 - 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: nums.sort() ans = [] n = len(nums)原创 2021-01-14 00:17:46 · 145 阅读 · 2 评论 -
一枚菜鸟的leetcode刷题笔记 -Day 2
7 - 整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Solution: def reverse(self, x: int) -> int: flag = False #判断符号,如果是负数设置为True if x < 0 :原创 2021-01-12 21:58:42 · 242 阅读 · 0 评论 -
一枚菜鸟的leetcode刷题笔记 - Day 1
一枚菜鸟的leetcode刷题笔记 - Day 12 - 两数相加class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: num1, num2 = 0, 0 order = 1 while l1: num1 += l1.val * order l1 = l1.next原创 2021-01-11 19:52:59 · 274 阅读 · 0 评论