LeetCode
呆子,何必
这个作者很懒,什么都没留下…
展开
-
天池leetcode编程task1
leetcode移除元素、删除有序数组中的重复项、三数之和原创 2022-02-14 21:47:47 · 616 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十七天
题目344:反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。题解:class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anythi原创 2021-01-25 22:25:14 · 71 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十六天
题目237:删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。题解:class Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, modify node in-place instead. """ #原创 2021-01-25 21:19:39 · 74 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十五天
题目231:2的幂给定一个整数,编写一个函数来判断它是否是 2 的幂次方。题解:class Solution: def isPowerOfTwo(self, n: int) -> bool: # 位运算 # return n>0 and not (n & (n-1)) return n>0 and ((1<<30)%n == 0) # 取对数 # return n>0 a原创 2021-01-25 19:53:23 · 73 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十四天
题目215:题目217:存在重复元素给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。题解:class Solution: def containsDuplicate(self, nums: List[int]) -> bool: # nums_set = set(nums) # if len(nums) == len(nums_set):原创 2021-01-25 17:28:04 · 97 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十三天
题目160:相交链表编写一个程序,找到两个单链表相交的起始节点。题解:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode)原创 2021-01-24 20:58:43 · 71 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十二天
题目146:LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它原创 2021-01-23 20:54:30 · 96 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十一天
LeetCode腾讯精选练习50——第十一天题目136:只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?题解:def singleNumber(self, nums: List[int]) -> int: res = 0 for num in nums: res = res ^ num # 异或原创 2021-01-22 15:33:04 · 100 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第十天
题目121:买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。题解:class Solution: def maxProfit(self, prices: List[int]) -> int: if len(prices) <= 1: return 0 min_原创 2021-01-21 21:19:12 · 110 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第九天
题目88:合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小等于 m + n)来保存 nums2 中的元素。题解:class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -&g原创 2021-01-20 17:19:38 · 71 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第八天
题目62:不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?题解:class Solution: def uniquePaths(self, m: int, n: int) -> int: from scipy.special import comb return int(com原创 2021-01-19 21:05:33 · 71 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第七天
题目54:螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。题解:class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: # 取首行,去除首行后,对矩阵翻转来创建矩阵 # 再递归知道新矩阵为[],退出并将取到的数据返回 res = [] if matrix == []原创 2021-01-18 19:20:59 · 76 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第六天
题目53:最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。题解:class Solution: def maxSubArray(self, nums: List[int]) -> int: for i in range(1,len(nums)): nums[i] = nums[i] + max(nums[i-1],0) return max(nums)for循环中,原创 2021-01-17 21:44:20 · 102 阅读 · 2 评论 -
LeetCode腾讯精选练习50——第五天
题目26:删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。题解:class Solution: def removeDuplicates(self, nums: List[int]) -> int: nums[:] = list(Counter(nums)) nums.sort()原创 2021-01-16 19:52:18 · 85 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第四天
题目20:有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。题解:class Solution: def isValid(self, s: str) -> bool: while '()' in s or '[]' in s or '{}' in s: s = s.repla原创 2021-01-14 23:11:54 · 78 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第三天
题目11:盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水题解:class Solution: def maxArea(self, height: List[int]) -> int: """ :type height: List[int]原创 2021-01-13 23:37:47 · 80 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第二天
题目7:整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转题解:class Solution: def reverse(self, x: int) -> int: if x>0: a = str(x) else: a = str(-x)+'-' a = int(a[::-1]) if a>=-2**31 and a<=2**31-1原创 2021-01-12 22:03:57 · 82 阅读 · 0 评论 -
LeetCode腾讯精选练习50——第一天
题目4:给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数题解:class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: sum_list = [] for i in nums1: sum_list.append(i) fo原创 2021-01-11 17:00:12 · 88 阅读 · 0 评论