刷题
咸鱼在厦大
厦门大学研究生在读,哔哩哔哩账号同名(咸鱼在厦大),专注于考研和AI技术分享,欢迎去踩!
展开
-
LeetCode0155
LeetCode0155 最小栈题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。sh(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出..原创 2021-01-23 22:47:09 · 123 阅读 · 0 评论 -
LeetCode0146
0146 LRU缓存机制题目描述:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓..原创 2021-01-23 22:43:58 · 122 阅读 · 0 评论 -
LeetCode0088
题目:合并两个有序数组题目解释:给你两个有序整数数组 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]..原创 2021-01-22 22:15:01 · 134 阅读 · 0 评论 -
LeetCode0142
LeetCode142 环形链表二题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:..原创 2021-01-22 19:47:19 · 118 阅读 · 0 评论 -
LeetCode0141
LeetCode 141 环形链表代码:class Solution: def hasCycle(self, head: ListNode) -> bool: seen = set() while head: if head in seen: return True seen.add(head) head = head.next r..原创 2021-01-22 19:37:15 · 104 阅读 · 0 评论 -
LeetCode0136
题目:只出现一次的数字代码:from functools import reduceclass Solution: def singleNumber(self, nums) -> int: return reduce(lambda x, y: x ^ y, nums)思路:使用位运算符,可以很简单的解决这道题,其中涉及到Python reduce函数,链接已经准备好了,还有就是位运算符的知识点,这是链接:Python位运算符...原创 2021-01-22 19:35:22 · 114 阅读 · 0 评论 -
LeetCode0122
如果你不够优秀,遇见也不配拥有,加油,亲爱的自己!LeetCode0122买卖股票的最佳时机2代码:class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in range(1, len(prices)): dayprofit = prices[i] - prices[i - 1] if tmp.原创 2021-01-21 18:56:23 · 111 阅读 · 1 评论 -
LeetCode合集
如果你不够优秀,遇见也不配拥有,加油,亲爱的自己! List itemList item List item原创 2021-01-21 18:50:10 · 226 阅读 · 1 评论 -
LeetCode0121
如果你不够优秀,遇见也不配拥有,加油,亲爱的自己!LeetCode0121买卖股票的最佳时机1代码:class Solution: def maxProfit(self, prices) -> int: inf = int(1e9) minprice = inf maxprofit = 0 for price in prices: maxprofit = max(price - minpr.原创 2021-01-21 18:47:46 · 101 阅读 · 1 评论 -
LeetCode0088、0089、0104
LeetCode0088代码:class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: nums1_copy = nums1[:m] nums1[:] = [] p1 = 0 p2 = 0 while p1 < m and p2 < n: .原创 2021-01-20 16:44:58 · 146 阅读 · 5 评论 -
LeetCode0062、0070、0078
LeetCode0062代码:class Solution: def uniquePaths(self, m: int, n: int) -> int: f = [[1] * n] + [[1] + [0] * (n - 1) for _ in range(m - 1)] #注意,这里[1] * n是先创建了一个全是1的1*n维的行矩阵,然后在让其加上两个开头为1 的(m-1)* n 维的矩阵。 #print(f) f..原创 2021-01-19 17:01:20 · 136 阅读 · 0 评论 -
LeetCode0056、0059、0061
LeetCode0054class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: if not matrix or not matrix[0]: return list() rows, columns = len(matrix), len(matrix[0]) visited = [[False] * c.原创 2021-01-18 22:46:47 · 108 阅读 · 2 评论 -
LeetCode 0043、0046、0053
LeetCode0043LeetCode0043代码:def multiply(self, num1: str, num2: str) -> str: if num1 == "0" or num2 == "0": return "0" ans = "0" m, n = len(num1), len(num2) for i in range(n - 1, -1, -1): .原创 2021-01-17 22:10:35 · 175 阅读 · 0 评论 -
2021-01-16
LeetCode0023代码:def mergeKLists(self, lists: List[ListNode]) -> ListNode: import heapq dummy = ListNode(0) p = dummy head = [] for i in range(len(lists)): if lists[i] : heapq.heappus.原创 2021-01-16 14:46:36 · 110 阅读 · 0 评论 -
Leetcode0016、0020、0021
0016题目 LeetCode0016思路:就是先排序,然后双指针遍历一下,先考虑枚举第一个元素 a,对于剩下的两个元素 b 和 c,我们希望它们的和最接近target−a,设数组的长度为 n,我们先枚举 a,它在数组中的位置为 i;为了防止重复,我们在位置 [i+1, n)的范围内枚举 b 和 c,b从i+i开始向后遍历,然后c从n向i+i反向遍历,直到相遇为止,如果 a+b+c≥target,那么就将c向左移动一个位置,反之b向右移动一个位置。代码:class Solution: de.原创 2021-01-15 23:06:16 · 177 阅读 · 0 评论 -
Leetcode每日三题0011、0014、0015
由于本人之前一直是按照顺序,每天一道,但目前在刷腾讯精选50道,所以暂时就不按照顺序刷了,刷完腾讯精选50道之后在按照顺序开始刷。以下代码全部基于Python,后续会补齐C、Java、R、C++版本。第0011题目:盛水最多的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器.原创 2021-01-13 15:46:45 · 157 阅读 · 0 评论 -
Leetcode 0007-0009
因为之前已经发过博客了,所以这里贴一下链接。LeetCode0007LeetCode0008LeetCode0009原创 2021-01-12 18:23:35 · 109 阅读 · 0 评论 -
Leetcode0002,0004,0005
以下全部基于python0002代码: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: prenode = ListNode(0) lastnode = prenode val = 0 while val or l1 or l2: val, cur = divmod(val + (l1.val if l1 else .原创 2021-01-11 22:51:34 · 136 阅读 · 0 评论 -
Leetcode0010
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8class Solution: def isMatch(self, s: str, p: str) -> bool: @lru_cache(None) def recur(i,j): if j==len(p): return i==len(s) first_match = (len(s) > i) and (p[j.原创 2021-01-10 20:45:24 · 106 阅读 · 0 评论 -
Leetcode0009
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8 def isPalindrome(self, x: int) -> bool: s = str(x) l = len(s) h = l//2 return s[:h] == s[-1:-h-1:-1]原创 2021-01-10 20:41:39 · 112 阅读 · 0 评论 -
Leetcode0008
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8import redef myAtoi(s: str) -> int: return max(min(int(*re.findall('^[\+\-]?\d+', s.lstrip())), 2 ** 31 - 1), -2 ** 31)s = "4193 with words"print(myAtoi(s))思路,首先是数值范围问题,这里我们可以用min和max函数来搞定,然后匹配的话.原创 2021-01-09 23:32:34 · 138 阅读 · 1 评论 -
Leetcode0007
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8def reverse(x: int) -> int: y, res = abs(x), 0 boundry = (1 << 31) - 1 if x > 0 else 1 << 31 while y != 0: res = res * 10 + y % 10 if res > boundry: .原创 2021-01-08 22:47:32 · 139 阅读 · 0 评论 -
Leetcode0006
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8def convert(s: str, numRows: int) -> str: if numRows < 2: return s res = ["" for _ in range(numRows)] i, flag = 0, -1 for c in s: res[i] += c if i == 0 or i == numRows - .原创 2021-01-07 23:18:24 · 134 阅读 · 0 评论 -
Leetcode0005
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8#动态规划def longestPalindrome(s: str) -> str: size = len(s) if size < 2: return s dp = [[False for _ in range(size)] for _ in range(size)] max_len = 1 start = 0 for i in.原创 2021-01-06 23:40:15 · 126 阅读 · 0 评论 -
Leetcode0004
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8 def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: n1 = len(nums1) n2 = len(nums2) if n1 > n2: return self.findMedianSortedArrays(nums.原创 2021-01-05 23:24:26 · 147 阅读 · 0 评论 -
Leetcode0001
看家本领不能丢,准备2021年每天一道leetcode题目,尽量不间隔,Python3.8def two(nums, target): hasmap = {} for i, num in enumerate(nums): if hasmap.get(target - num) is not None: return [hasmap.get(target - num), i] hasmap[num] = ia = [1, 3, 4.原创 2021-01-02 23:16:37 · 100 阅读 · 0 评论