• [问题求助] 第十三期 问题求助
    有关AffinityScore,题面原文为其中preceeded单词错误,请问应该是什么呢?此外,请问AffinityScore增加是要求同类Message必须相邻,还是位于同一个core就行呢?
  • [问题求助] 第十八期 评分标准咨询
    目前的得分计算方式是在三个数据集上QPS的累加和,奖项设置规定得分大于68504分才有奖品,确定不是多打了个0吗?
  • [问题求助] 第十八期 比赛规则咨询
    编译环境pdf中提到可用的Python包包括:python 3.7.3  numpy: 1.21.6  faiss-cpu: 1.7.4  scipy: 1.7.3,补充说明中又说道除numpy外,不允许引用其他第三方库,感觉二者相互冲突了。除此以外,还有一些编程和运行程序的规则也不是很明确。请问faiss和scipy在比赛中是否能使用呢?还是说算法的全部代码都必须由python的默认库和numpy来实现?实验环境只提到了x86,请问允许使用多核心/多线程吗?一共有三个样例,三个样例一共允许运行12分钟,还是说一个样例允许运行12分钟呢?
  • [问题求助] 第十期问题可以用Python/Matlab编程语言吗
    请问,第十期问题可以用Python/Matlab编程语言吗
  • [问题求助] 第14期问题求助:执行时间
    赛题任务书上写执行时间是30s,但是现在测试脚本的超时判断是4s左右和13期的指定执行时间相同,请问目前14期的超时判断时间是多久?
  • [问题求助] 第十一期:为啥只能python啊
    C++ 1s的代码,python 5s都跑不动,达不到C++ 1s的分,5000*5000个点算一下距离就4s了,现在的瓶颈是python而不是算法了。
  • [技术干货] 算法的学习笔记之—最长不含重复字符的子字符串(牛客JZ48)
    😀前言 在编程问题中,处理字符串是一个常见的挑战,其中有一个经典问题就是寻找字符串中最长不含重复字符的子字符串。该问题的目的是在给定的字符串中,找到一个没有重复字符的子字符串,并返回其长度。🥰最长不含重复字符的子字符串牛客网😊题目描述我们需要解决的是:给定一个只包含小写字母(a~z)的字符串,找出其最长的不含重复字符的子字符串的长度。例如,对于输入字符串 arabcacfr,其中最长的不含重复字符的子字符串是 acfr,其长度为4。😉解题思路解决这个问题最简单的思路是使用暴力法:遍历字符串的所有子字符串,检查每个子字符串是否包含重复字符,记录没有重复字符的最长子字符串的长度。然而,这种方法效率较低,尤其是在处理大规模字符串时,时间复杂度可能会达到 O(n²),因此我们需要一种更高效的方案。高效的方法可以通过滑动窗口和哈希表来优化,我们只需线性遍历字符串一次即可解决问题,时间复杂度为 O(n)。下面的 Java 代码实现了这个思路。😁Java代码实现public int longestSubStringWithoutDuplication(String str) { int curLen = 0; // 当前不含重复字符的子字符串长度 int maxLen = 0; // 目前找到的最长子字符串长度 int[] preIndexs = new int[26]; // 记录字符上一次出现的位置 Arrays.fill(preIndexs, -1); // 初始化字符的上次出现位置为 -1 for (int curI = 0; curI < str.length(); curI++) { int c = str.charAt(curI) - 'a'; // 将字符映射到 0 ~ 25 的整数 int preI = preIndexs[c]; // 获取该字符上次出现的位置 if (preI == -1 || curI - preI > curLen) { // 如果字符第一次出现或者在当前子字符串之外,更新当前长度 curLen++; } else { // 如果字符在当前子字符串内出现过,更新最长长度,并从重复字符之后开始新子字符串 maxLen = Math.max(maxLen, curLen); curLen = curI - preI; } preIndexs[c] = curI; // 更新字符上次出现的位置 } maxLen = Math.max(maxLen, curLen); // 确保结束时记录到最长长度 return maxLen; }代码详解变量定义:curLen: 当前不含重复字符的子字符串长度。maxLen: 记录到目前为止,最长的不含重复字符子字符串的长度。preIndexs: 一个大小为26的数组,用来存储每个字符上次出现在字符串中的位置。由于字符串只包含a~z的字符,因此数组长度为26,preIndexs[i]对应第i个字母(a对应0,b对应1,以此类推)。初始化:将 preIndexs 数组的所有元素初始化为 -1,表示每个字符一开始都没有出现过。遍历字符串:遍历字符串的每个字符,获取其在 preIndexs 中记录的上一次出现的位置 preI。如果该字符第一次出现,或者它的上一次出现位置在当前子字符串之外(即 curI - preI > curLen),说明当前字符没有重复,当前子字符串的长度 curLen 增加1。如果该字符在当前子字符串内出现过(即 curI - preI <= curLen),则更新 maxLen,并将当前子字符串重新设置为从重复字符的下一个位置开始,长度为 curI - preI。更新位置:每次遍历字符时,将其在 preIndexs 中的位置更新为当前下标。返回结果:遍历完字符串后,再次更新 maxLen,确保返回值是最终的最长子字符串长度。解题思路总结这个算法的核心思想是用滑动窗口的方法动态维护一个不含重复字符的子字符串,并通过记录每个字符的上一次出现位置,避免了重复字符的出现。这样我们就能在一次遍历中找到最长的不含重复字符的子字符串,时间复杂度为 O(n),空间复杂度为 O(1)。💝算法复杂度分析时间复杂度:每个字符只会被访问两次(一次是进入窗口,一次是离开窗口),因此时间复杂度为 O(n),其中 n 是字符串的长度。空间复杂度:由于只需要一个长度为 26 的数组来存储字符出现的位置,空间复杂度为 O(1)。💖实际应用场景这种问题在实际开发中非常常见。例如:在文本处理系统中,我们可能需要查找一段不含重复字符的文本片段,以进行进一步的分析。在数据分析中,类似的思路可以用来寻找交易记录中的最长不重复行为序列。在爬虫等系统中,处理不同网页路径的去重问题时,字符串处理的高效算法也至关重要。😄总结求解最长不含重复字符的子字符串的问题,关键在于使用滑动窗口技术和哈希表来跟踪字符的最近出现位置,避免重复字符的出现,从而实现高效的解决方案。通过一次遍历,我们能够找到字符串中最长的不含重复字符的子字符串,并返回其长度。这种方法不仅减少了时间复杂度到 O(n),而且代码结构简洁,易于理解和实现。滑动窗口的思想广泛应用于各种字符串处理问题中,不仅限于这道题目,还可以拓展到其他场景。在实际应用中,处理字符串、文本或序列中的重复字符问题非常常见,无论是数据清理、爬虫去重还是用户行为分析,掌握这类高效的算法对于开发和优化系统具有重要意义。通过这道题,我们也可以更好地理解如何通过空间换时间的技巧来优化算法的性能,并学会利用数组或哈希表等工具来记录状态信息,使得问题可以在线性时间内高效解决。
  • [问题求助] rpmbuild打包时候strip出错
    大佬们这是为啥呢,意思还得重新手动编译opencv库吗?
  • [问题求助] 第九期问题求助:是否提供评价指标计算的代码?
    看着评价指标计算还挺复杂的,请问是否提供评价指标计算的代码?谢谢
  • [第5期高维向量数据] 第十二期 文档样例数据疑问
    文档中的样例数据,图G里面有两个1,下面两个子图中都是1个1,如何确定子图里的那个1是图G的两个1中的哪个呢?根据顺序来判断吗?
  • [问题求助] 请教一下
    第十一期所谓步骤3和4移动方向的改变,具体指什么?例如从p1到p2,对于步骤3,从p1移动到锚点的方向和之前移动到p1的方向不一致即视为方向改变?或者从p1移动到锚点的方向与从锚点移动到p2的方向不一致即视为方向改变?
  • [问题求助] 华为算法精英实战营第十二期
    请教一下反馈信息的runtime error和execution time exceeded的区别是啥
  • [问题求助] 第12期题目的数据样例的疑问
    样例输入的数据出现了在输入的node中不存在的数值。比如:在主图中:大致对应的图如下边图所示(默认把最后一个1改为了5):node中并没有5。下面的2个子图:对应的画出来的图如下所示(默认把4改为了3):希望有人可以解释一下上面的数据不一致的原因,谢谢!
  • [问题求助] 华为算法精英实战营第十二期
    missing entry file是什么意思?
  • [问题求助] 华为算法经营实战营 第十二期 可以使用多核吗?
    如题,还是说只能使用单核计算?
总条数:96 到第
上滑加载中