摘要:我们将每个词排序后,根据这个键值,找到哈希表中相应的列表,并添加进去。 Group Anagrams 最新更新请见:https://yanjia.me/zh/2019/01/... Given an array of strings, group anagrams together. For example, given: ["eat", "tea&q...
摘要:但是统计交点到终点的步数比较困难,我们可以直接统计从最短链表开头到交点的步数,其实是等价的。 双指针法 复杂度 时间 O(N) 空间 O(1) 思路 先算出两个链表各自的长度,然后从较长的链表先遍历,遍历到较长链表剩余长度和较短链表一样时,用两个指...
摘要:我们只要保证,对于第一次遇到的图节点,我们都会建立一个克隆节点,并在哈希表映射起来就行了。所以只要哈希表中有这个图节点,就说明我们之前已经将该图节点放入队列了,就不需要再处理了。 Clone Graph Clone an undirected graph. Each node in t...
摘要:动态规划复杂度时间空间思路这是算法导论中经典的一道动态规划的题。 Edit Distance Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) You h...
摘要:代码寻找中点记录第二段链表的第一个节点将第一段链表的尾巴置空将第二段链表的尾巴置空依次判断 Palindrome Linked List Given a singly linked list, determine if it is a palindrome. Follow up: Could you do it in O(n) time and O(1) space? ...
摘要:先跳过前个节点,然后初始化好这五个指针后,用中的方法反转链表。完成了第个节点的反转后,将子链反转前的头节点的设为子链反转过程中的下一个节点,将子链反转前头节点前面一个节点的设为子链反转过程中的当前节点。 Reverse Linked List I Reverse...
摘要:利用这个性质,我们可以建立一个素数数组,从开始将素数的倍数都标注为不是素数。第一轮将等表为非素数,然后遍历到,发现没有被标记为非素数,则将等标记为非素数,一直到为止,再数一遍素数数组中有多少素数。代码将的倍倍倍都标记为非素数 Count Pr...
摘要:最新更新思路和其他语言请访问哈希表法复杂度时间空间思路用一个哈希表记录字符串中字母到字符串中字母的映射关系,一个集合记录已经映射过的字母。或者用两个哈希表记录双向的映射关系。这里不能只用一个哈希表,因为要排除这种多对一的映射。 Isomor...
摘要:代码集合法复杂度时间空间思路同样使用集合,但这次我们要维护集合的大小不超过,相当于是记录一个宽度为的窗口中出现过的数字。 Contains Duplicate I Given an array of integers, find if the array contains any duplicates. Your function should...
摘要:但如果它的上方,左方和左上方为右下角的正方形的大小不一样,合起来就会缺了某个角落,这时候只能取那三个正方形中最小的正方形的边长加了。假设表示以为右下角的正方形的最大边长,则有当然,如果这个点在原矩阵中本身就是的话,那肯定就是了。 Maxi...
摘要:最大堆存的是到目前为止较小的那一半数,最小堆存的是到目前为止较大的那一半数,这样中位数只有可能是堆顶或者堆顶两个数的均值。我们将新数加入堆后,要保证两个堆的大小之差不超过。最大堆堆顶大于新数时,说明新数将处在所有数的下半部分。 Data S...
摘要:压缩前缀树其实就是将所有只有一个子节点的节点合并成一个,以减少没有意义的类似链表式的链接。然后我们开始遍历这个前缀树。 Implement Trie Implement a trie with insert, search, and startsWith methods. Note: You may assume that all inputs...
摘要:源码剖析由于红黑树的操作我这里不说了,所以这里基本上也就没什么源码可以讲了,因为这里面重要的算法都是,这里的是指,他们是算法导论的作者,也就是说里面算法都是参照算法导论的伪代码。因为红黑树是平衡的二叉搜索树,所以其包含操作的时间复杂度...
摘要:正则表达式思路首先我们要熟悉罗马数的表达方式。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于,从千位到个位依次拆解。 Valid Roman Numeral 正则表达式 思路 首先我们要熟悉罗马数的表达方式。M是1000,D是500,C是...
摘要:编程语言及面向对象基础题 编程语言及面向对象基础题 Design Pattern What is singleton? What"s its cons and pros? How to implement it?Definition: Singleton pattern is a design pattern that ensure that only one instanc...
摘要:有一个例子是之筛算法,这个算法的主要作用是查找一定范围之内的所有质数,对此比较感兴趣,所以用数组和各做了一遍,又在两台电脑上各实现了两种算法。 阅读《Java核心技术》的时候,读到了BitSet这个集合。有一个例子是Eratosthenes 之筛算法,这个...
摘要:因为自带的版本过低,会导致编译通不过。设置环境变量以上设置的环境变量都是临时的,建议设置成永久全局变量。这时候如果出现错误,重新运行命令如果仍然报错,比如打不开某个文件,把下的全部删掉。 Step1 安装git服务,用于从github拉取rocksdb源代...
摘要:看到的函数返回类型,估计就是在这里实现了字节码的转换,然后返回了新的被掉包的文件了。虽然是门静态类型语言,不过幸亏有字节码和作为中间层,使得实现起来相对容易。 最近在工作中写单元测试的时候,有使用到jmockit来mock无关对象。 在jmockit中...
摘要:快慢指针法复杂度时间空间思路这是一道非常经典的双指针题。如果快指针和慢指针相遇,则说明链表有环。代码快慢指针法复杂度时间空间思路这题是基于上一题,上一题我们发现相遇后就返回了,而这里我们还要继续找到环的起始点。 Linked List Cycle I Gi...
摘要:,到现在为止一切都按部就班,执行上面的命令正常运行,读取里面的文件,并输出相应的属性。那么,如果我们想改变配置文件的内容是否需要修改源文件里的然后重新打包成呢显然这样做太麻烦也不太合理,你可以在外面配置一个新的让里的去读取。 Java中经...
摘要:但是在中就只是声明,但是还没有分配空间,中的才是分配了内存的。对于语言会报错这样是对的详细说明原因只能是或者是没有这个是中的语法,所以要区分和的语法和机制如果用声明了对象会报错这才是正确的语法 C++中创建对象的两种语法 在c++的类中,我...
摘要:最新思路解法请访问排序法复杂度时间空间思路先将数组排序,再遍历一遍,找前后都不一样的那个数即可。代码累加所有数中该位的个数位异或法复杂度时间空间思路我们用三个变量分别记录出现一次的数,出现两次的数和出现三次的数。 Single Number I 最新...
摘要:四分法复杂度时间空间思路用三个点将字符串分成四段,验证每一段是否是有效的。注意使用时要确保所得到数不会超界。代码第一个分割点第二个分割点第三个分割点 Restore IP Address Given a string containing only digits, restore it by returning a...
摘要:中序遍历复杂度时间空间思路因为左节点小于根节点小于右节点,二叉搜索树的一个特性就是中序遍历的结果就是树内节点从小到大顺序输出的结果。这里采用迭代形式,我们就可以在找到第小节点时马上退出。这样我们就可以用二叉树搜索的方法来解决这个问题了...
摘要:优先队列复杂度时间空间思路遍历数组时将数字加入优先队列堆,一旦堆的大小大于就将堆顶元素去除,确保堆的大小为。如果这个分界点是,说明分界点的数就是第个数。 Kth Largest Element in an Array Find the kth largest element in an unsorted arr...
ChatGPT和Sora等AI大模型应用,将AI大模型和算力需求的热度不断带上新的台阶。哪里可以获得...
大模型的训练用4090是不合适的,但推理(inference/serving)用4090不能说合适,...
图示为GPU性能排行榜,我们可以看到所有GPU的原始相关性能图表。同时根据训练、推理能力由高到低做了...