Fans的博客

即学即会, 让学习更容易

2021-11-01-链表SOTA操作

leetcode-链表SOTA操作

链表操作 为什么单独把链表拎出来?因为最近刷题经常碰到链表,然后以前的知识以及写法老是忘记,就很烦,特此总结一下链表的一些SOTA操作,以及比较综合的一些题 链表特性 首先因为链表没法使用下标索引访问数据,因此搜索时间复杂度是On 但是链表的插入以及修改操作的复杂度达到O1,因为不需要对其余的数据发生变动 但也正因为这个特性,导致我们在很多题中必须要模拟解法,但是并不能保证解法的复杂度最低...

2021-09-24-leetcode-真好的双指针

leetcode-真好的双指针

双指针的用途 双指针法一般用于什么问题?首先,我们需要考虑是单向还是双向的。 单向双指针: 链表:找倒数第几个位置,或者找中间的位置 数组:覆盖,交换,重新构造秩序,单向覆盖 双向双指针: 倒序,交换,快速排序(递归) 有序数组的两个数之和,正负数有序的平方,也就是满足前后的双数查找 单向双指针 链表:找倒数第几个位置,或者找中间的位置 数组:覆盖,交...

2021-09-20-二分查找的神

leetcode-二分查找

二分查找 什么是二分查找?二分查找就是不断的找当前序列的中点,通过与二段性比较,如果满足,则解必然在另一半的序列中,将序列一分为二,在另一半中继续搜索,如此往复,因此每次减少一般的搜索空间,达到Ologn的时间复杂度。 二段性 二分查找最重要的就是必须拥有二段性,什么是二段性?必须序列的前一部分满足一个性质,后一部分不满足,因此我们可以通过二分查找找到两个性质转变的中间点。 举个例子,在s=...

2021-09-17-leetcode-栈与队列

栈与队列

栈和队列 两个栈实现一个队列 求解思路,使用两个栈来回倒—此处已经是优化后的 我们设一个栈A和一个栈B 如果是进队操作——-对进A栈 如果是退队操作——-检查B栈,如果B中有元素,则B出栈,如果B中没有元素,则将A中元素倒入B中 判断队列为空==两个栈都为空,返回-1 class CQueue(object): def __init__(self): ...

深度学习-永远的神:Transformer

永远的神:Transformer

前言 由谷歌团队提出的预训练语言模型BERT近年来正在各大自然语言处理任务中屠榜(话说学者们也挺有意思的,模型名都强行凑个芝麻街的人物名,哈哈哈)。 BERT算法的最重要的部分便是Transformer的概念,它本质上是Transformer的编码器部分。 而Transformer是什么呢?transformer是永远的神,自从transformer使用了抛弃rnncnn的纯attentio...

2021-09-15-只出现一次的数字

leetcode-136

题目 136.给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 集合解法 使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该...

运行代码整个计算机会发生什么?

计算机基础

运行代码整个计算机会发生什么? 首先我们以一个C语言程序为例子 运行一个C/C++代码第一步: 编译,优化(.c->.s,.asm) 一个C/C++程序在点击运行的那一刻,首先这个程序经过预处理之后会被编译及优化, 编译的过程设计到编译原理的相关知识,词法分析,...

科研第四步

写会议论文必备工具以及技能

科研第四步:AI方向投稿会议论文必备工具以及技能 因为最近投了研究生生涯中第一篇论文,早就想写,但是拖了很久,写一下心路历程以及写论文中用到的常用工具以及一些心得以及一些技巧,希望可以帮助大家提升一下写论文的效率,以及减免一些写论文上面的时间。同时因为最近又要投稿一篇论文,所以为了方便自己写的时候很多上次用到的东西忘记,所以就当写一个备忘。 @TOC 前言 计算机专业投稿AI领域的会议,首...

科研第二步

远程在服务器上跑程序&jupyter使用

前言 本篇文章主要介绍如何使用jupyter这个功能十分强大,并且可以写code和markdown的编辑利器,并且实现在服务器上运行jupyter可以使用服务器上的gpu速度以及图形化方便的IDE。 一、jupyter是什么? Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Noteboo...

科研第三步

pycharm远程连接服务器并链接服务器跑神经网络模型

前言 本篇文章主要介绍如何使用pycharm professional(仅限专业版)可以连接服务器,这一强大的IDE来实现远程在服务器上修改代码,跑代码,以及搭载服务器上面的虚拟环境来跑神经网络模型,最后讲出了如何使用pycharm来debug我们的代码,解决一些通过只看报错信息无法解决的bug报错。 一、pycharm连接服务器 请按照以下步骤一步步的进行即可: 首先进入tools——...