给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"] 示例 2: 输入:["H",
之前小红书一志愿挂了今天再做次笔试,不知道能不能捞起来 第一题 对一个数组a可以进行两种操作:1. a[0]==0,删除a[0];2. a[0]!=0,a[0]减一并在数组a末尾添加a[0]个a[0]-1 求让输入的数组a变为空的操作数,答案模10^9+7 思路:对于a[0]==x,设消除它的操作次数为f(x),则f(x)=x+1+x*f(x-1)+...+1*f(0),求sum([f(x) fo
面试过程大概50多分钟,感觉比较凉的一面,拼多多11116工作强度。面试官周六还面试,看起来有点累的。 1、面试官首先介绍了自己的部门业务 2、做个自我介绍 3、让介绍项目,针对项目问了几个点 4、C++,数据结构是硕士阶段学的吗,机器学习什么时候学的(非科班感觉经常被问啊) 5、参加过什么社团 (技术面问这个是啥意思) 6、在班级里担任过什么职务 (问这个是为面试凑时间吗,) 7、说一下SVM算
没想到被抖音主站的视频推荐捞了,虽然早知道会被锤,但是没想到会被按在地上摩擦。[微笑R] 一面: 先是自我介绍 之后说我这个科研方向说的不对,说我都搞混淆了,咱就是说斯坦福写的综述就是这么写的,我只是个小follower[哭惹R] 然后问了点实习经历。 最后跟我说,做道题吧,考你一个简单的,等会我找找哈。 说来吧,做一道基础的。 我一看,力扣的困难题,OK 还好我做过,写上了。 然后没想到,面完俩
没想到被抖音主站的视频推荐捞了,虽然早知道会被锤,但是没想到会被按在地上摩擦。[微笑R] 一面: 先是自我介绍 之后说我这个科研方向说的不对,说我都搞混淆了,咱就是说斯坦福写的综述就是这么写的,我只是个小follower[哭惹R] 然后问了点实习经历。 最后跟我说,做道题吧,考你一个简单的,等会我找找哈。 说来吧,做一道基础的。 我一看,力扣的困难题,OK 还好我做过,写上了。 然后没想到,面完俩
1、自我介绍,完了之后面试官又介绍了他们在做的工作 2、问论文、项目内容 3、介绍transformer的结构;为什么要用多头;注意力有什么用等等 4、chatgpt了解吗,用过吗,聊了很多关于chatgpt这些大模型 5、写代码(给定两个字符串str1和str2,求字符串数组strs中str1和str2的最小距离) 6、反问:我问了去了以后做什么工作,偏项目还是科研#NLP#
1. 面试官先上来说这是算法岗,会问很多ml的知识(可能是我简历上的ml项目不够多参杂了一些java后端的项目,还是以后分成后端一个简历,算法岗一个简历吧) 2. 然后开始问就是关于项目的内容让我介绍了我的项目做了什么,输入是什么,神经网络怎么做的,用到的算法的一些特点。(我这部分答得很差) 3. 然后我自己提到了yolo,面试官问对于yolo有什么优化(并没有),然后问了loss具体的内容 4.
拜占庭问题与算法 拜占庭问题更为广泛,讨论的是允许存在少数节点作恶(消息可能被伪造)场景下的一致性达成问题。拜占庭算法讨论的是最坏情况下的保障。 中国将军问题 拜占庭将军问题之前,就已经存在中国将军问题:两个将军要通过信使来达成进攻还是撤退的约定,但信使可能迷路或被敌军阻拦(消息丢失或伪造),如何达成一致。根据 FLP 不可能原理,这个问题无解。 拜占庭问题 又叫拜占庭将军(Byzantine G
最小操作数 题目描述 给定一个单词集合Dict,其中每个单词的长度都相同。现从此单词集合Dict中抽取两个单词A、B,我们希望通过若干次操作把单词A变成单词B,每次操作可以改变单词的一个字母,同时,新产生的单词必须是在给定的单词集合Dict中。求所有行得通步数最少的修改方法。 举个例子如下: Given: A = “hit” B = “cog” Dict = [“hot”,”dot”,”dog”,
二叉树 二叉树:二叉树是有限个结点的集合,这个集合或者是空集,或者是由一个根结点和两株互不相交的二叉树组成,其中一株叫根的做左子树,另一棵叫做根的右子树。 二叉树的性质: 性质1:在二叉树中第 i 层的结点数最多为2^(i-1)(i ≥ 1) 性质2:高度为k的二叉树其结点总数最多为2^k-1( k ≥ 1) 性质3:对任意的非空二叉树 T ,如果叶结点的个数为 n0,而其度为 2 的结点数为 n
使用k-means算法时需要指定分类的数量,这也是算法名称中“k”的由来。 k-means是Lloyd博士在1957年提出的,虽然这个算法已有50年的历史,但却是当前最流行的聚类算法! 下面让我们来了解一下k-means聚类过程: 我们想将图中的记录分成三个分类(即k=3),比如上文提到的犬种数据,坐标轴分别是身高和体重。 由于k=3,我们随机选取三个点来作为聚类的起始点(分类的中心点),并用红黄
图是一种比线性表和树更复杂的数据结构,在图中,结点之间的关系是任意的,任意两个数据元素之间都可能相关。 图是一种 多对多 的数据结构。 Gravph(V, E) V - vertex:点 度 - 入度和出度 点与点之间:连通与否 E - edge: 边 有向边和无向(单线线) 权重(边长) 无向图(边没有方向) 有向图(边有方向) 图是由顶点和边组成的:(可以无边,但至少包含一个顶点) 一组顶点:
与Set类似,ES6同样实现了一个Map类,即我们所说的字典 是一种以 键-值对 形式存储数据的数据结构 ,就如同我们平时查看通讯录一样,要找一个电话,首先先找到该号码的机主名字,名字找到了,紧接着电话号码也就有了。 这里的键就是你用来查找的东西,本例中指代的就是名字,值就是查找得到的结果,也就是对应的电话号码。 在JavaScript 中的 Object 类就是以字典的形式设计的,下面我们将会借
在高中数学中第一课就是集合,一种数学概念。 通常用大写字母如A,B,S,T,...表示集合,而用小写字母如a,b,x,y,...表示集合的元素。若x是集合S的元素,则称x属于S,记为x∈S。若y不是集合S的元素,则称y不属于S,记为y∉S 。 在计算机中,集合(set)是一种包含不同元素的数据结构。 集合中的元素称为成员。 以 [value, value] 的形式储存元素 集合的两个最重要的特性是