- 博客(24)
- 收藏
- 关注
原创 快排 + 二分
一直觉得快排跟二分很像,大家也都有很多变种,在此整理一下快排的特点是,需要一个pivort,让左边比他大,右边比他小(反之亦然),每次排序都有一个数的位置被确定两种写法其实是一种经典partition写在一个函数里class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: def quicksort(start,end): idx = random.randi
2022-04-05 00:48:13
244
原创 【力扣】链表操作
基础操作反转链表206. 反转链表头插法class Solution: def reverseList(self, head: ListNode) -> ListNode: dummy = ListNode() while head: node = head head = head.next node.next = dummy.next dummy.next
2022-04-03 00:14:21
1396
原创 【力扣十道】单调栈+前缀和
模版是:0.先判断维持一个单调增还是单调减的栈1.遍历每一个节点2.如果出现比栈顶小/大的情况处理3.否则入栈判断要不要加边界情况是如果比栈顶小,就弹出栈把小的放进去比如1,3,5,此时2,如果入栈,就变成1,2看这个图,找到左右比他小的数,得到他影响的范围(在他的范围内,数都是比他大的)42.接雨水单调递减栈,出现比栈顶大的元素则找到了两遍,确定height要根据两端高度判断class Solution: def trap(self, height: List[int])
2022-04-02 22:29:11
291
原创 【力扣n道】思路很重要
最小数组821. 字符的最短距离class Solution: def shortestToChar(self, s: str, c: str) -> List[int]: prev = float('-inf') res = [] #从左到右 for i,j in enumerate(s): if j == c: prev = i res.app
2021-08-26 21:14:54
100
原创 【力扣十道】快排+堆
215. 数组中的第K个最大元素class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: #堆 return heapq.nlargest(k, nums)[k-1] #直接 nums.sort(reverse = True) return nums[k-1] n = sorted(nums,reverse
2021-08-26 15:14:41
79
原创 【力扣十道】二叉树
刷题来劲了啊,让我们先膜一下神,就算不能去,也是很快乐的,刷完20道然后复习一下操作系统我就要去“地狱”了100. 简单-相同的树class Solution: def isSameTree(self, p: TreeNode, q: TreeNode) -> bool: if not p and not q : return True elif not p or not q : return False
2021-08-23 20:37:21
173
原创 【力扣十道】双指针
双指针觉得写过很多次了嘛,但是没有笔记,可能=滑动窗口要点就是快指针每次都走 慢指针看条件走26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II通解:class Solution: def removeDuplicates(self, nums: List[int]) -> int: n = len(nums) def sove(k): fast = slow = k while fast
2021-08-12 16:04:01
95
原创 【力扣十道】回溯
好久没写,仍然是模版方法思路简述:递归调用def backtrack(State,判断条件): if 满足什么条件就可以将State加入到res: res.append(S) return if 怎么怎么: backtrack(State,条件变化)res =[]backtrack(初始状态)return res22. 括号生成class Solution: def generateParenthesis(self, n: int) -> List[str]:
2021-08-04 18:56:59
120
原创 【力扣十道】dp动态规划
虽然树递归什么的我放弃了,很烦,但是来写dp了,就熬着呗,煎和熬都是变美味的方法dp对我来说也是三步:建dp数组初始化下标0的位置!!!不要看全局,把自己放在j这个位置想当前的局部最大该怎么算返回最大值198. 中等-打家劫舍213.中等-打家劫舍II把环拆开,劫他们两次哭哭不敢写树状dp,再写两道普通的再树状62. 不同路径你就想 你站在i,j的最多路径怎么算啊,不要想全局啊不要想全局class Solution: def uniquePaths(self, m: int
2021-06-13 17:34:10
121
原创 【力扣十道】彻底解决滑动窗口
最近比较艰难啊,不足的地方好多,就当是打怪升级路漫漫了我们统一思路都是:while里针对right作出改变判断特殊条件是否满足,(如果窗口不固定在这步移动left)每步right都要走,(如果固定窗口在这步移动left)这样就可以做一个无情的代码机器(不用考虑滑动窗口现在的是框住的还是下一个的条件之类的,无脑刷就完事了)类型一:滑动窗口固定简单-643. 子数组最大平均数 I求滑动窗口的最大平均数中等-1423. 可获得的最大点数说是从两边取最大,其实是求剩余最少,就是上一题求最大平
2021-06-12 20:56:25
346
原创 nlp知识点
本文一切秉持短小精悍,通俗易懂的思想一. tf-idf1.1 思想词并不是出现次数越多就越重要,原则是出现在越少的文档重要性就越高,向量长度等于词库大小V词频(term frequency,TF):指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(term count)的归一化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否)逆向文件频率(inverse document frequency,IDF):由总文件数目除以包含该词语之文件的数
2021-06-09 14:47:14
276
原创 【DL】数据处理
打算分为三部分来写:数据处理,模型搭建,损失及计算,这是第一部分一.停用词想去掉每行中的\n,不用readline(),而用.read().splitlines()stopWords = open('data/stopwords.txt').read().splitlines() print("取停用词完成")for i in range(len(data_text)): temp = data_text[i].split(' ') datatext.append([t for t
2021-06-09 13:56:08
148
原创 bert调用相关知识点
https://www.cnblogs.com/cxq1126/p/13517394.html1 print(tokenizer.encode('我不喜欢你')) #[101, 2769, 679, 1599, 3614, 872, 102]2 sen_code = tokenizer.encode_plus('我不喜欢这世界','我只喜欢你')3 print(sen_code)4 # {'input_ids': [101, 2769, 679, 1599, 3
2021-06-03 21:16:22
221
原创 【力扣】常见又想不起来
快慢双指针前缀和https://leetcode-cn.com/problems/count-of-range-sum/solution/class Solution: def countRangeSum(self, nums: List[int], lower: int, upper: int) -> int: res, pre, now = 0, [0], 0 for n in nums: now += n
2021-05-18 13:57:39
72
原创 超详细!!服务器搭jupyter notebook及挂起和关闭进程
再次警告⚠️……没有在小小demo上试验成功的代码不要放到服务器上造垃圾一、服务器上配置jupyter1.1 ssh连接到服务器,cd到你想建立jupyer的服务器目录下执行:$ jupyter notebook --generate-config然后会出现1.2生成密码$ python>>> from IPython.lib import passwd>>>passwd()需要你两次输入你想设置的密码,然后返回一个’argon2:$argon……‘
2021-04-08 14:55:16
8478
原创 搭建一个简单的问答系统
学了很多什么分词,维特比,ui-gram之类的,但是能用起来才算真的学懂三天的时间做完了这个项目 结果和想象不能说是完全一致 只能说是毫无关系总结一下项目经验就是:试试做个子数据集,要不然需要跑很久还不知道哪里错了一步一步来想清楚步骤,一定是可以做出来的好的我们开始复盘!2.1第一部分: 读取文件,并把内容分别写到两个list里import jsondef read_corpus(): """ 读取给定的语料库,并把问题列表和答案列表分别写入到 qlist, alist 里面
2021-03-25 20:15:42
750
原创 nlp上课知识回顾
贝叶斯可以推导出TF-IDF本文该词词频✖️该词在所有语料库中出现的频度k-meanskmeans 通俗易懂随机初始化中心点每个点和中心点计算距离 归类每个类重新计算中心点 …迭代gensim
2021-03-14 14:43:05
110
原创 吴恩达week5 lesson1学习笔记
从最基础的RNN开始这里一个方框是一个cell,公式是对应手动实现代码是注意这里是dot点积,还需要注意各个维度的含义 这边是(n_x,m,T_x)到了pytorch模型那边不一样def rnn_cell_forward(xt, a_prev, parameters): a_next=np.tanh(np.dot(parameters["Wax"],xt)+np.dot(parameters["Waa"],a_prev)+parameters["ba"]) yt_pred=sof
2021-03-02 15:27:47
173
原创 python 简便写法汇总
python如果要用到数组的值和下标:找出数组中大于0的值的下标return [x+1 for x in range(len(nums)) if nums[x]>0]return [i+1 for i,num in enumerate(nums) if num>0] #改进后
2021-02-13 11:08:32
653
2
原创 [leetcode]经典二分查找+python快速二分查找
bisect 二分查找库bisect二分查找库import bisectdata=[5,3,6,2,8]data.sort()dataOut:[2, 3, 5, 6, 8]insort和bisect#查找该数值将会被插入的位置,并将其插入bisect.insort(data,4)print(data)Out:[2, 3, 4, 5, 6, 8]#查找该数值将会被插入的位置并返回,但是并不将其插入bisect.bisect(data,2)Out: 1insort_le
2021-02-03 14:45:42
340
原创 【力扣】通俗易懂并查集·月整理
更复杂的并查集内容在https://zhuanlan.zhihu.com/p/93647900/我们只需要知道并查集能帮助我们做什么,和代码框架解读一.并查集通俗理解通俗来说就是用一个二维矩阵,起初大家都是孤立的然后某个节点不断得进行势力扩张,合并其他节点,比如初始矩阵如下:[[0,1,2][3,4,5][6,7,8]]然后进行merge 操作,比如merge(2,1),merge(2,4),merge(2,7),merge(2,8)那么矩阵变成[[0,2,2][3,2,5][6,2,
2021-01-30 23:42:47
291
原创 mac在pytorch环境下装transformer并成功实例运行
主要是想成功运行下面这个安装步骤https://huggingface.co/transformers/installation.html#installing-from-source一、进入环境 conda activate pytorch二、因为mac没有gpu,只能安装cpu版本的pip install transformers[torch]一开始我忘记进入pytorch环境,在base下是可以成功安装的,但是进入后就不行,原因是zsh兼容问题三、报错信息:zsh:no matche
2020-10-18 18:39:25
2098
1
原创 最新 Mac 安装python+anaconda+tensorflow
最新 Mac 安装python+anaconda+tensorflow 版本一. 正常情况三步安装二. 第二步/第三步超时添加镜像三. zsh:conmmand not found版本“从一个什么都没安装的mac开始!下面的代码都是直接输入在终端里”安装anaconda会直接附带安装python吴恩达的DL课用的是tensorflow. 1.x版本 配套版本 tf1.15.0+python3.7+anaconda 1.7.2(如想下载tf2.X请自行查看匹配版本)可以直接官网下载anaconda,
2020-08-03 22:34:46
1407
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人