自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 收藏
  • 关注

原创 李沐|动手学深度学习v2笔记

课程安排我的笔记:1、win11-安装CUDA|VScommunity|pytorch

2021-12-25 16:20:28 790

原创 斯坦福21秋季:实用机器学习-李沐课程笔记

课程主页B站视频PS:李老师dbq,我尽量将您截的图好看些1、ML工作流程及相应难点2、四类职位难怪叫做数据科学家~3、课程重点总结

2021-12-20 15:27:03 1154

原创 Leetcode|Python 刷题

一、题目:两数之和二、解题1、暴力遍历:两个for循环2、思考:两数之和,知道了和target,遍历一遍的时候,又知道加数的其中一个value,就可以反减出另一个加数,同时利用词典的特性【hash算法,可以快速的检查某个键值存在与否。】,快速定位另一个加数的位置。详细可看:力扣官方题解在的话,即,已排除了重复同一个数相加的情况,因为这个时候,该数本身还不在词典中。不在的话,就普通遍历一遍,加入词典即可。第二个方法其实也算是用空间换时间了。...

2021-12-19 22:23:14 842

原创 2.1 Vision-Language Pre-Training for Multimodal Aspect-Based Sentiment Analysis

ACL 2022:南京理工大学。

2022-11-17 21:40:00 1363 1

原创 ArtFlow: Unbiased Image Style Transfer via Reversible Neural Flows

Jie An, Siyu Huang等:CVPR 2021:罗切斯特大学、百度研究院、腾讯AI实验室、腾讯数据平台。

2022-11-09 11:28:42 1098

原创 672.灯泡开关2|数学推理|6个周期|影响开关

*已知:**按钮1影响所有(周期为1)、按钮2影响偶数(周期为2)、按钮3影响奇数(周期为2)、按钮4影响(1、4、7)【倍数3余1】(周期为3)的灯泡。2、暴力想法,不考虑重复结果:按 presses 次,每次有 4 种选择,那么一共有 4^presses 种按动选择。presses为1时(示例给出了答案),n

2022-09-16 13:14:52 396

原创 857.雇佣K名工人的最低成本|贪心|优先队列|困难|公式转换

贪心:先将所有小的性价比员工放进来(卷的员工,质量高、钱要的还少),然后枚举以每一个能成为工资组中权重(性价比)最大的工人(固定一个变量,剔除质量太高的)来计算最小工资组开销,然后取其中的最小即可。“当固定了某K个工人为一组时,工人k1的质量q1作分子,质量和totalq作分母,再乘以总的发的工资totalw,就是他能拿到的工资w1”,这个w1必须大于等于他期望的工资,才是合理的分组。“对工资组中的每名工人,应当按其工作质量与同组其他工人的工作质量的比例来支付工资。

2022-09-14 14:47:51 122

原创 670.最大交换|分界线|右边的最大值换到左边

【代码】670.最大交换|分界线|右边的最大值换到左边。

2022-09-14 14:22:45 65

原创 1592.重新排列单词间的空格

遍历一遍,统计空格数量count和单词数量word;然后将单词用【count//(word-1)】个空格拼接,在加上【count%(word-1)】个剩余的空格。

2022-09-08 15:22:39 77

原创 828. 统计子串中的唯一字符|动态规划X|数学思维|转换角度

统计子串中的唯一字符

2022-09-07 11:09:44 87

原创 安装Mitie

mitieVisual Studio 中的C++桌面开发cmakeboost

2022-07-14 15:27:03 862

原创 283.移动零

一下子没想出来,模拟下了计算机的步骤。如下:class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ i = 0 # i表示遍历到j处时,包含的非0数的数量 j = 0 # 遍历 nlen = len(n.

2022-04-09 21:03:25 149

原创 3.6. softmax回归的从零开始实现|简洁实现

from tkinter.tix import Y_REGIONfrom turtle import updatefrom pyparsing import numsimport torchfrom IPython import displayfrom d2l import torch as d2l# 下载数据集到内存batch_size = 256train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)# 1、初始

2022-04-03 17:06:02 1912

原创 279.完全平方数|四平方定理|动态规划

想不出来,看解析的思路写的动态规划:class Solution: def numSquares(self, n: int) -> int: # 动态规划 # dp[i]指i这个数化作完全平方数的和的个数 # 动态规划就是要利用好前面已经计算的数的结果,假设前面的数的结果都计算好了。 # 在前面某个数[1, i-1]上能不能跳一步到现在的数i,跳一步:只加一个数j的完全平方数到达i。 # 那能使得跳一步的这..

2022-04-03 14:43:14 397

原创 240.搜索二维矩阵II|Z字搜索|从斜对角开始|每次可排除一行或一列

这个方法虽然能过,但太笨了,就不解释了。T^Tclass Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: row = len(matrix) col = len(matrix[0]) if target < matrix[0][0] or target > matrix[row-1][col-1]: ...

2022-04-02 21:19:45 335

原创 3.5 fashion-MNIST图像分类数据集

import torchimport torchvisionfrom torch.utils import datafrom torchvision import transformsfrom d2l import torch as d2l# 用SVG格式画图d2l.use_svg_display()# 1、读取数据集# 通过框架中的内置函数将Fashion-MNIST数据集下载# 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式,# 并除以255使得所有像素的数

2022-04-01 20:29:16 632

原创 239.滑动窗口最大值|堆|优先队列|单调递减的双向队列

一、最小堆堆真是个好数据结构,可惜不熟。class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: # 如果窗口大小为1,滑动窗口最大值就是自身 if k == 1: return nums # 一、错误思路 # firstMax = [nums[0], 0] # 记录窗口中第一大的数值和其下标 .

2022-04-01 16:19:59 483

原创 238.除自身以外数组的乘积|两次遍历:左边累乘*右边累乘

常数级别的空间复杂度、O(n)时间复杂度、不用除法除法-》一开始就乘1遍历两遍,1、计算当前数左边的乘积 2、计算当前数右边的乘积 3、累乘class Solution: def productExceptSelf(self, nums: List[int]) -> List[int]: # nlen = len(nums) res = [1] * nlen tmp = 1 # 遍历两遍 ..

2022-03-31 17:34:09 136

原创 3.2&3.3 线性回归的从零开始实现|Pytorch简洁实现

学习链接:李沐老师的动手深度学习v2书、视频链接代码部分的理解笔记。1、生成数据2、读取数据集3、初始化模型参数4、定义模型5、定义损失函数6、定义优化算法7、训练import randomimport torchfrom d2l import torch as d2l# 1、生成数据# 根据给定参数,生成带噪音的训练数据集def synthetic_data(w, b, num_examples): X = torch.normal(mean=0, std=1,

2022-03-30 21:59:05 1707

原创 236.二叉树的最近公共祖先|递归

递归递的脑壳痛。参考链接:236. 二叉树的最近公共祖先(DFS ,清晰图解)# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def lowestCommonAncestor(self,..

2022-03-30 15:35:30 610

原创 234.回文链表|快慢指针|链表反转

看了官方解题思路,然后自己写的代码。1、找到链表的中间结点,此时slow指向奇数链的中间结点,偶数链的中间的右边结点2、翻转后边的链表,此时slow指向第二部分子链翻转后的头结点3、对比head和slow指向的链表即可# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.nex.

2022-03-29 17:49:11 681

原创 226.翻转二叉树|递归

想到了之前的一道题,判断是不是对称二叉树101.对称二叉树|递归。逻辑应该类似。递归着一直将根结点的左右两棵树调换。用具体的树模拟一遍就勤洗了# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.rig.

2022-03-28 17:27:23 748

原创 221.最大正方形|动态规划

动态规划自个儿写的,支棱.jpg。开始只知道动态规划,然后是具体动手模拟一遍,初始状态、转移方程就自然而然出来了。class Solution: def maximalSquare(self, matrix: List[List[str]]) -> int: # 动态规划 # dp[i][j] 存的是以当前位置为【最大正方形的右下角】,这个正方形的边长。 # maxlen 存最大正方形的边长 row, col = l...

2022-03-27 16:38:21 202

原创 215.数组中的第K大最大元素|快排|堆排

暴力,这肯定不是面试出题者的意图class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: # nums = list(set(nums)) # 去重 nums.sort(reverse=True) # 排序 print(nums) return nums[k-1]快排class Solution: def findK..

2022-03-26 15:36:59 607

原创 208.实现Trie(前缀树)

此前我都不是很了解这个概念。和我一样的可以看看这个链接Trie Tree 的实现 (适合初学者)🌳总结链接:1、结点:2、Trie例子class Trie: def __init__(self): self.children = dict() self.isEnd = False def insert(self, word: str) -> None: curnode = self for ch in.

2022-03-25 16:14:09 378

原创 207.课程表|拓扑排序|判断有向图是否有环|深度遍历|广度遍历

读题:已知边,判断该有向图是否有环。参考链接:「图解」拓扑排序 | 课程表问题把一个 有向无环图 转成 线性的排序 就叫 拓扑排序BDF 广度遍历1、根据pre得indegree入度数组、adject邻接表2、queue保存入度为0的结点(即没有前提课程的课程)3、根据queue减少相邻结点的入度(根据adject邻接表),减到0后入队列;4、队列空了后,还有入度不为0的课程(即numCourse!=0)就返回False。class Solution: def canFin.

2022-03-21 20:24:24 205

原创 206.反转链表|迭代|递归

迭代# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def reverseList(self, head: ListNode) -> ListNode: if not head : ret..

2022-03-20 21:08:58 343

原创 200.岛屿数量|DFS

深度遍历class Solution: def numIslands(self, grid: List[List[str]]) -> int: count = 0 self.grid = grid self.row = len(self.grid) self.col = len(self.grid[0]) def dfs(i, j): if not (0 <= i <s..

2022-03-19 17:32:51 182

原创 198.打家劫舍|动态规划|特殊情况

动态规划class Solution: def rob(self, nums: List[int]) -> int: nlen = len(nums) dp = [0] * nlen dp[0] = nums[0] for i in range(1, nlen): if i == 1: dp[i] = max(nums[0], nums[1]) ..

2022-03-19 17:14:10 80

原创 169.多数元素|字典|moore投票计数法

字典记录{数:出现次数}时间复杂度O(n),空间复杂度O(n)class Solution: def majorityElement(self, nums: List[int]) -> int: # nlen = len(nums) dicts = collections.defaultdict(int) res = [] for val in nums: dicts[val] += 1 ..

2022-03-19 16:41:18 141

原创 160.相交链表|双指针走个循环a+b或者b+a

双指针,一个走a+c+b,一个走b+c+a。具体见代码注释# 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) -&...

2022-03-19 15:58:16 358

原创 155.最小栈|辅助栈|辅助元组

栈中保存一对元组,以(当前值,当前栈中的最小值)的形式class MinStack: def __init__(self): self.stack = [] def push(self, val: int) -> None: if len(self.stack) == 0:# 空栈 self.stack.append((val, val)) # 栈中最小值就是自身 else: s..

2022-03-19 15:17:11 161

原创 152.乘积最大子数组|动态规划|因为负数的存在,需同时记录最大最小值

动态规划class Solution: def maxProduct(self, nums: List[int]) -> int: nlen = len(nums) dpmax = nums[0] # 记录乘积最大值 dpmin = nums[0] # 记录乘积最小值 res = dpmax # 因为下一个出现的数值是如果是负数,会将最小值变成最大值,所以两个都要记录;res是记录中途中的连续子数组的的最大乘积,代替了dp..

2022-03-18 22:26:31 239

原创 148.排序链表|从下往上的二分归并

分析nlogn的时间复杂度:归并排序、堆排等常数的空间复杂度:递归需要用到栈,不行。那就倒着来,用interval记录需要归并的两子链范围。# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def sort..

2022-03-17 14:14:40 406

原创 146.LRU缓存|字典+双向链表

常数的时间复杂度:用hash字典最久没用的关键字:要记录使用顺序,用队列这里有问题:如果get()取得的是队列中间的关键字,此时要将其移到最后。时间复杂度不会是常数。单链表移动也不会是常数的时间复杂度,要用双向链表。class LRUCache: # 不行的代码 def __init__(self, capacity: int): self.capacity = capacity self.dicts = collections.defaultdict(...

2022-03-17 11:18:11 159

原创 142.环形链表II|快慢指针(相遇:走了n倍环长)+慢慢指针(相遇:走到环入口)

快慢指针# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def detectCycle(self, head: ListNode) -> ListNode: slow = head fast = head..

2022-03-15 17:12:33 112

原创 141.环形链表|快慢指针

我的思路:原地修改结点的next,将其指向自己,以此标记是否遍历过# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def hasCycle(self, head: Optional[ListNode]) -> bool: ...

2022-03-15 16:37:11 367

原创 139.单词拆分|记忆化回溯|动态规划

我的回溯:超时class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: self.wordDict = wordDict self.res = False def backtrack(s): if len(s) == 0: self.res = True if self.res: return ..

2022-03-15 15:58:51 155

原创 136.只出现一次的数字|异或运算|reduce

线性时间复杂度,说明只遍历一遍;如果可以用额外空间,可以用字典计数,然后遍历得到字典中值为1的键。但是如果是这样,题目中又说其余每个元素都出现两次。两次,我刚开始想的是用一正一负抵消,但这样也是需要记录出现次数的呀。学算法,结果相对于过程不那么重要提出用异或,因为异或独特的性质。class Solution: def singleNumber(self, nums: List[int]) -> int: return reduce(lambda x, y :x^y, n.

2022-03-15 15:05:30 83

原创 128.最长连续序列|动态规划|区间两端的key记录区间长度value

class Solution: def longestConsecutive(self, nums: List[int]) -> int: # 动态规划,用字典记录,如果num是区间边界,记录的是包含num在内的连续区间的长度,是中间区间可能就不会更新成它的区间长度,除非它是新加进来的val(后面测试发现,这个也可以随便填个数值,只要标记在字典中就行)。因为如果不是新加进来的val,那么他就是已经在字典中了。 # 以[100,4,200,1,3,2]为例。 .

2022-03-15 14:49:31 149

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除