Python
咸鱼在厦大
厦门大学研究生在读,哔哩哔哩账号同名(咸鱼在厦大),专注于考研和AI技术分享,欢迎去踩!
展开
-
视频转换为帧
最近写的一个小工作,将视频切分成帧。原创 2023-10-29 20:29:47 · 220 阅读 · 0 评论 -
利用python进行数据分析 (3st)第三章笔记
利用python进行数据分析第三版 第三章原创 2023-08-08 19:45:04 · 289 阅读 · 0 评论 -
利用python 进行数据分析(第三版)第二章小结
利用python 进行数据分析(第三版)第二章小结原创 2023-08-07 21:02:19 · 1080 阅读 · 0 评论 -
LeetCode0013罗马数字转整数
LeetCode0013罗马数字转整数代码:class Solution: def romanToInt(self, s: str) -> int: d = {'I': 1, 'IV': 3, 'V': 5, 'IX': 8, 'X': 10, 'XL': 30, 'L': 50, 'XC': 80, 'C': 100, 'CD': 300, 'D': 500, 'CM': 800, 'M': 1000} result = ..原创 2021-02-04 22:52:53 · 120 阅读 · 0 评论 -
LeetCode557反转字符串中的单词3
LeetCode557反转字符串中的单词3 class Solution(object): def reverseWords(self, s): return " ".join(each[::-1] for each in s.split(" "))思路:先将字符串转换为单词,然后将其逆序,然后再将一个个的单词join成一个字符串。复杂度分析时间复杂度:O(n)空间复杂度:O(n)...原创 2021-01-29 21:27:17 · 144 阅读 · 0 评论 -
LeetCode239 滑动窗口最大值
LeetCode239 滑动窗口最大值代码:class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: n = len(nums) # 注意 Python 默认的优先队列是小根堆 q = [(-nums[i], i) for i in range(k)] heapq.heapify(q) ans =..原创 2021-01-28 20:11:57 · 108 阅读 · 0 评论 -
LeetCode238 除自身外数组的乘积
LeetCode238 除自身外数组的乘积代码:class Solution: def productExceptSelf(self, nums: List[int]) -> List[int]: res, p, q = [1], 1, 1 for i in range(len(nums) - 1): # bottom triangle p *= nums[i] res.append(p) ..原创 2021-01-28 20:10:51 · 104 阅读 · 0 评论 -
LeetCode237 删除链表中的节点
LeetCode237 删除链表中的节点代码:class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, mod..原创 2021-01-28 20:09:46 · 121 阅读 · 0 评论 -
Python拾碎
| 的运算级比 “” 的运算级高,所以有了如下代码,在C和Java中是 ‘ | ’运算符的优先级比 ‘’ 的优先级低,还有在Python中 “or” 的优先级比 “|” 的优先级低。Python 3.8.5 (default, Sep 4 2020, 07:30:14) [GCC 7.3.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information..原创 2021-01-27 23:19:41 · 145 阅读 · 0 评论 -
LeetCode0231 2的幂
LeetCode0231 2的幂代码:class Solution: def isPowerOfTwo(self, n: int) -> bool: return n > 0 and n & (n - 1) == 0思路:巧妙利用位运算,若 n = 2^x,且 x 为自然数(即 n 为 2 的幂),则一定满足以下条件:恒有 n & (n - 1) == 0,这是因为:n 二进制最高位为 1,其余所有位为 0;n−1 二进..原创 2021-01-27 16:27:35 · 96 阅读 · 0 评论 -
LeetCode230 二叉树中第K小的元素
LeetCode230 二叉树中第K小的元素代码:#生成器写法class Solution: def mid_order(self, root): if not root: return yield from self.mid_order(root.left) yield root.val yield from self.mid_order(root.right) def kthSmallest(self, r..原创 2021-01-26 16:51:32 · 136 阅读 · 0 评论 -
LeetCode217 存在重复元素
LeetCode217 存在重复元素代码:class Solution: def containsDuplicate(self, nums: List[int]) -> bool: return False if len(set(nums))==len(nums) else True思路:直接将列表转换为set,然后利用set的性质,比较前后两者长度是否一样。...原创 2021-01-26 16:50:53 · 143 阅读 · 0 评论 -
[LeetCode0215 数组中的第K个最大元素
LeetCode0215 数组中的第K个最大元素代码:# 时间复杂度:o(nlogn)# 快速排序def quick_sort(alist, start, end): if start >= end: return mid_value = alist[start] low = start hight = end while low < hight: while low<high and alist[..原创 2021-01-26 16:50:13 · 116 阅读 · 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 评论 -
LeetCode0124
LeetCode0124 二叉树的最大路径和代码:class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = rightclass Solution: def __init__(self): self.maxSum = float("-inf") ..原创 2021-01-21 19:09:03 · 126 阅读 · 2 评论 -
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 评论