• [问题求助] 第24期-Checker returned an error: row 61595: col 1: Token a_j is empty (maybe you forget to read whitespace character
    Checker returned an error: row 61595: col 1: Token a_j is empty (maybe you forget to read whitespace character请问我这里的格式是为什么输出不正确了?
  • [赛事资讯] 技术集结令!!!「电网杯」算法大赛火热进行中!!!
    ‼34万奖金‼“电网杯”算法大赛正火热开赛中🔥🔥🔥🔥技术集结令! 「电网杯」算法大赛火热开赛中,邀你解锁电力未来密码!🌟这里有真实电网场景的硬核赛题,等待你用算法突破能源优化难题;🌟这里有数十万奖金池与荣誉证书,为技术实力加冕;🌟这里有行业大咖组成的评委天团,帮你直通职业快车道!不管你是算法新秀还是代码战神,这里都是你的创新秀场‼用智慧为电网赋能,让每一行代码都闪耀价值!👍👉 即刻加入这场能源与智能的狂欢盛宴吧~    
  • 第27期是不是缺少样例数据?
    比赛页只提供了这三个文件,而28期提供了,这是啥情况?
  • [技术干货] 算法的学习笔记—两个链表的第一个公共结点(牛客JZ52)
    🥰两个链表的第一个公共结点😄题目描述😊问题描述给定两个单向链表,找出它们的第一个公共节点。如果两个链表没有交点,则返回 null。这意味着链表从某个结点之后开始共享相同的后续节点。需要注意的是,这里的"公共"结点不是指值相同,而是指两个链表引用的同一个结点,即在内存中的地址相同。🥳解题思路解决这个问题的核心在于如何找到链表的第一个公共节点。可以通过观察链表的结构来思考:设链表 A 的长度为 a + c,其中 a 是链表 A 不与链表 B 共享的部分的长度,c 是 A 和 B 共有的部分长度。同样地,设链表 B 的长度为 b + c,其中 b 是链表 B 不与链表 A 共享的部分。两条链表在某个节点开始共享尾部节点,因此可以得到以下等式:链表 A 的总长度 = a + c链表 B 的总长度 = b + c可知:如果我们从头开始遍历链表 A 和链表 B,由于它们的长度不同,直接同时遍历无法保证两条链表的指针在公共部分的第一个节点相遇。但是,如果我们遍历完一条链表后,切换到另一条链表继续遍历,则可以通过控制遍历的顺序来同步两个指针的速度。即遍历完链表 A 后从链表 B 的头部重新开始遍历,同样地,遍历完链表 B 后从链表 A 的头部重新开始遍历。通过这样的方式,两个指针会在相同的时刻访问到链表的公共部分。具体步骤如下:初始化两个指针 l1 和 l2,分别指向链表 A 和链表 B 的头节点。如果 l1 和 l2 不相等,则分别遍历链表 A 和 B。当某个指针到达尾部时,切换到另一条链表的头部继续遍历。当两个指针相遇时,返回该指针所指向的节点,即第一个公共节点。时间复杂度和空间复杂度分析时间复杂度: O(m + n),其中 m 和 n 分别是链表 A 和 B 的长度。每个指针遍历链表的次数最多为两次,因此时间复杂度为 O(m + n)。空间复杂度: O(1),只用了两个指针来进行遍历,因此不需要额外的空间。💝代码实现下面是基于上述思路的 Java 实现代码:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { ListNode l1 = pHead1; ListNode l2 = pHead2; // 当两个指针不相等时,继续遍历 while (l1 != l2) { // l1 先走完链表 A,转向链表 B l1 = (l1 == null) ? pHead2 : l1.next; // l2 先走完链表 B,转向链表 A l2 = (l2 == null) ? pHead1 : l2.next; } // 相遇时即为第一个公共结点,或者为 null(无公共节点) return l1; } } 代码详解ListNode 类:定义了链表的节点结构,每个节点包含一个整数值 val 和指向下一个节点的指针 next。FindFirstCommonNode 方法:该方法接受两个链表的头节点作为参数,并返回第一个公共节点。遍历链表的方式如前面所述,通过指针的切换,两个指针会在公共节点相遇。示例考虑以下两个链表:链表 A: 1 -> 2 -> 3 -> 6 -> 7链表 B: 4 -> 5 -> 6 -> 7在这种情况下,链表 A 和 B 的第一个公共节点是 6。通过上述方法,程序会正确找到该节点。😄总结通过同步两个指针的遍历方式,能够有效地解决两个链表寻找第一个公共节点的问题。该方法的时间复杂度为 O(m + n),空间复杂度为 O(1),在链表问题中是非常高效的一种解法。这种技巧值得学习,因为它不仅解决了本题,还可以运用于其他链表相关的题目中,比如寻找链表的环起点等。
  • [技术干货] 算法的学习笔记—数组中的逆序对(牛客JZ51)
    🥰数组中的逆序对😄问题描述给定一个数组,数组中的两个数字如果满足以下条件,则它们组成一个逆序对:假设数组为 nums[i] 和 nums[j],若 i < j 并且 nums[i] > nums[j],则 (nums[i], nums[j]) 是一个逆序对。目标是计算数组中这样的逆序对的数量。示例假设给定的数组为 [7, 5, 6, 4]。通过观察可以得到以下逆序对:(7, 5)(7, 6)(7, 4)(5, 4)(6, 4)总共有 5 对逆序对,因此最终结果为 5。😃解题思路直接使用双重循环暴力枚举每一对元素来检查是否为逆序对的复杂度为 O(n2)O(n^2)O(n2),这在数组规模较大时效率较低。为了解决这个问题,我们可以借助归并排序算法,通过将问题分解为更小的子问题来提高效率。归并排序思想归并排序是一种分治算法。它将一个大的问题分解为两个小的子问题,递归地解决子问题,最后将子问题的解合并成原问题的解。在计算逆序对时,我们可以通过在归并的过程中统计逆序对的数量,从而实现线性对数级别的时间复杂度 O(nlog⁡n)O(n \log n)O(nlogn)。具体步骤分解问题: 将数组分成左右两部分,分别对左右部分进行归并排序。归并: 在归并的过程中,若左半部分的某个数字大于右半部分的某个数字,那么这个数字及左半部分后续的所有数字都比右半部分的数字大,形成逆序对。我们可以在归并的过程中统计这些逆序对。💖代码实现以下是基于归并排序来解决逆序对问题的Java代码实现:private long cnt = 0; // 用于计数逆序对的数量 private int[] tmp; // 辅助数组,避免在递归过程中多次创建新数组 public int InversePairs(int[] nums) { tmp = new int[nums.length]; mergeSort(nums, 0, nums.length - 1); return (int) (cnt % 1000000007); // 结果对1000000007取模,防止结果过大 } private void mergeSort(int[] nums, int l, int h) { if (h - l < 1) // 当子数组的长度小于等于1时,不需要进行排序 return; int m = l + (h - l) / 2; // 计算中间位置 mergeSort(nums, l, m); // 递归排序左半部分 mergeSort(nums, m + 1, h); // 递归排序右半部分 merge(nums, l, m, h); // 合并排序后的两个子数组 } private void merge(int[] nums, int l, int m, int h) { int i = l, j = m + 1, k = l; // 初始化左右指针和辅助数组的指针 while (i <= m || j <= h) { // 当左、右两部分数组未完全处理完时 if (i > m) { tmp[k] = nums[j++]; // 左边处理完了,直接将右边的元素加入辅助数组 } else if (j > h) { tmp[k] = nums[i++]; // 右边处理完了,直接将左边的元素加入辅助数组 } else if (nums[i] <= nums[j]) { tmp[k] = nums[i++]; // 左边元素小于等于右边元素,加入辅助数组 } else { tmp[k] = nums[j++]; // 右边元素小于左边元素,加入辅助数组 cnt += m - i + 1; // 统计逆序对,左边的剩余元素都比当前右边元素大 } k++; } // 将辅助数组的结果复制回原数组 for (k = l; k <= h; k++) nums[k] = tmp[k]; } 代码讲解cnt:用于计数逆序对的总数量。tmp:辅助数组,用于在归并时暂存排序后的子数组。InversePairs 方法:对输入数组调用归并排序,并返回逆序对数量。为了避免结果过大,返回时对 1000000007 取模。mergeSort 方法:实现归并排序的递归逻辑,将数组分为两部分,分别进行排序,并在排序过程中调用 merge 方法。merge 方法:实现两个已排序子数组的合并过程,同时统计逆序对的数量。若左边子数组的某个元素大于右边子数组的当前元素,则说明该元素与右边子数组当前元素及其后的所有元素都形成了逆序对。时间复杂度分析归并排序的时间复杂度是 O(nlog⁡n)O(n \log n)O(nlogn),其中 nnn 是数组的长度。由于在归并的过程中我们只需额外进行 O(n)O(n)O(n) 的操作来统计逆序对,因此整个算法的时间复杂度仍然是 O(nlog⁡n)O(n \log n)O(nlogn)。这比直接使用 O(n2)O(n^2)O(n2) 的双重循环要高效得多,特别是在数组规模较大时。😄总结逆序对问题是一个经典的算法问题,借助归并排序可以将其优化至 O(nlog⁡n)O(n \log n)O(nlogn) 的时间复杂度。通过在归并排序的过程中适时地统计逆序对,我们可以有效地解决这个问题。
  • [技术干货] 算法的学习笔记—第一个只出现一次的字符位置(牛客JZ50)
    🥰第一个只出现一次的字符位置🤔题目描述在一个字符串中找到第一个只出现一次的字符,并返回它的位置。字符串只包含 ASCII 码字符。Input: abacc Output: b💖解题思路方法一:使用 HashMap最直观的方法是使用 HashMap 来统计每个字符的出现次数。具体步骤如下:遍历字符串,将字符作为键,出现次数作为值存入 HashMap。再次遍历字符串,查找第一个出现次数为 1 的字符,返回其位置。示例代码如下:public int FirstNotRepeatingChar(String str) { // 创建一个 HashMap,用于统计每个字符的出现次数 Map<Character, Integer> countMap = new HashMap<>(); // 遍历字符串,将字符作为键,出现次数作为值存入 HashMap for (char c : str.toCharArray()) { countMap.put(c, countMap.getOrDefault(c, 0) + 1); } // 再次遍历字符串,查找第一个出现次数为 1 的字符 for (int i = 0; i < str.length(); i++) { if (countMap.get(str.charAt(i)) == 1) { // 返回该字符的位置 return i; } } // 如果没有找到,返回 -1 return -1; } 以上实现的空间复杂度还不是最优的。考虑到只需要找到只出现一次的字符,那么需要统计的次数信息只有 0,1,更大,使用两个比特位就能存储这些信息。方法二:使用整型数组考虑到 ASCII 码字符有限,可以使用长度为 128 的整型数组代替 HashMap,来记录每个字符的出现次数。实现方法与上面类似,但效率更高。public int FirstNotRepeatingChar(String str) { // 创建一个长度为 128 的整型数组,用于统计字符出现次数 int[] cnts = new int[128]; // 遍历字符串,统计每个字符的出现次数 for (int i = 0; i < str.length(); i++) { cnts[str.charAt(i)]++; } // 再次遍历字符串,查找第一个出现次数为 1 的字符 for (int i = 0; i < str.length(); i++) { if (cnts[str.charAt(i)] == 1) { // 返回该字符的位置 return i; } } // 如果没有找到,返回 -1 return -1; } 方法三:使用位集(BitSet)为了进一步优化空间复杂度,可以使用 BitSet 来存储每个字符的状态,分为三种情况:未出现(0)、出现一次(1)和出现多次(2)。通过两个 BitSet,可以高效地统计字符的出现情况。public int FirstNotRepeatingChar2(String str) { // 创建两个 BitSet,用于记录字符的状态 BitSet bs1 = new BitSet(128); // 用于记录字符出现一次 BitSet bs2 = new BitSet(128); // 用于记录字符出现多次 // 遍历字符串,更新字符的状态 for (char c : str.toCharArray()) { if (!bs1.get(c) && !bs2.get(c)) { // 状态 0 -> 1(首次出现) bs1.set(c); } else if (bs1.get(c) && !bs2.get(c)) { // 状态 1 -> 2(再次出现) bs2.set(c); } } // 再次遍历字符串,查找第一个状态为 1 的字符 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (bs1.get(c) && !bs2.get(c)) { // 状态 1 // 返回该字符的位置 return i; } } // 如果没有找到,返回 -1 return -1; } 😄总结本文介绍了三种方法来找到字符串中第一个只出现一次的字符。通过不同的数据结构和算法,解决方案的效率和空间复杂度各有不同。选择合适的方法取决于具体需求和数据规模。
  • [大赛资讯] 求第26期 神经网络中的相依算子优化 比赛的 选手交流群 和 比赛结束的解决方案参考学习
    官方的交流群已经扫码过期了,求官方邀请我进群,或者大佬们比赛结束后能否分享下自己的解决方案供学习下,提前感谢了!
  • 【FQA】第二届“华为智联杯”无线程序设计大赛,常见问题持续更新。
    这是一场什么样的比赛?“华为智联杯”无线程序设计大赛 ,是由华为无线产品线面向高校软件精英精心构筑的巅峰竞技场。本赛事旨在点燃软件精英的创意火花与探索激情,在数字智能浪潮中,探索AI、高性能算法等软件技术与无线通信的融合创新。赛题来源于无线通信技术的前沿业务场景,融合了工程技术实践和学术实践,力图挖掘并培养未来的科技领航者。我们诚邀怀揣梦想的软件精英,加入这场启迪智慧、挑战极限的非凡旅程!让我们一起启航“智联杯“,引领无线技术的新纪元!如何报名参赛?报名链接:cid:link_0有问题如何求助?·  在本版论坛发帖求助:比赛过程中参赛选手可以在论坛中发帖,详细描述您遇到的问题,大赛组委会工作人员将会在工作日工作时间,在社区回复(为保证大赛公平公正原则,大赛官方仅针对报名方式、赛制、赛题、大赛安排等问题进行答疑)。·  联系大赛组委会工作邮箱:如没有得到及时回复,可以发邮件至大赛工作人员邮箱:zhongziyi@huawei.com·  赛事交流QQ群:257010855Q:队伍的每个队员都要在华为云的报名通道完成报名吗?A:参赛的每个队员都需要报名,报名之后组件团队,后续软件挑战赛道的提交以团队为单位进行提交。 Q:通用算法赛道具体赛制是什么,有语言限制吗?电脑如何分配?A:通用算法赛道参考ACM赛制,语言没有限制,一组一台电脑。Q:软件挑战赛道主要是干什么,是完成需求开发吗?A:软件挑战赛道可以参考软挑赛,针对给定的需求场景,通过不断迭代获取最佳性能。Q:软件挑战赛道和通用算法赛道在时间上会冲突吗?A:两个比赛的线下提交是同一个时间,因此从时间上看会存在冲突的可能。Q:非上海市高校学生是否可以参加本次比赛?A:非常欢迎非上海市高校学生参加本次比赛。有两点需要注意:1)本次比赛为线下比赛,比赛地点为上海大学宝山校区,选手需要现场签到2)由于本次比赛的通用算法赛道的结果会应用于2025年中国大学生程序设计竞赛上海市选拔,因此通用算法赛道的奖金方案也将作用于选拔范围,因此非上海市高校学生在通用算法赛道上按照打星方式参赛。软件挑战赛道则无该约束,可正常参与奖金评选。Q:通用算法赛道和软件挑战赛道是否可以跨学校跨专业组队? A:由于通用算法赛道的结果会应用于2025年中国大学生程序设计竞赛上海市选拔,不建议跨校组队。软件挑战赛道可以跨学校和跨专业组队Q:通用算法赛道结果如果作为上海市赛选拔,会有CCPC的榜单和奖牌吗?A:本次比赛由华为进行赞助,为通用算法赛道和软件挑战赛道设置了对应的奖金,除此之外,兼顾上海市赛选拔,通用算法赛道会按照10%,20%, 30%的比例颁发奖牌和证书。Q:我如果不报名可以直接参加比赛吗?A: 不可以哦。本次比赛评奖赛道必须与选手的报名赛道保持一致,如果不报名,或者报名时选择的赛道和现场比赛的赛道不一致则没法参加评奖。
  • [华为嵌入式软件大赛] 有关题目的理解问题
    对于每个请求来说,我是允许可以让一个用户的推理样本的请求送到不同的server吗?如果这样的话,题目中的move(move中写的是NPU标号不同,但没有说不同的server的情况(给出的输出样例里有不同server情况的))如何计算呢?能不能额外补充一份赛题解释,光看这份的话感觉get到的信息不是很多。
  • [问题求助] 强烈举报 | 前排小号违规占位,严重扰乱平台秩序!
    1、涉嫌利用小号占据前排,影响公平竞争环境,违反社区规范(1)25期(1)24期2、黑科技???or内幕???在下表示不相信世界上有这么全能的人3、有些前排选手未见0分,突然从未上榜到直接冲榜前几名???4、差异不大,排名固定。你品你细品此行为严重破坏公平竞争环境,损害用户体验,违背平台秩序!以上信息请平台核实后,尽快处理。谢谢!!!给其他选手一个说法:我们还有必要继续参加吗请平台立即核实并严肃处理,清除违规账号,还社区一片清净公平之地!
  • [问题求助] 第二十四期
    请问有编程语言的限制吗?貌似没有看到编译环境说明以及其他的附件请问获奖条件是否需要超过历史基线?在奖项配置中没有看到相关说明
  • [问题求助] 【24期】Checker returned an error: row 1: col 1: Token a_j is empty (maybe you forget to read whitespace character
    Token a_j is empty指的是什么为空?(maybe you forget to read whitespace character指的又是哪里没有读空格?这是用文档里的测试算例模拟交互给出的结果,这个有问题吗?输入:2 48 1024 132 4096 2140 20 111 1 2 320 121 2 24 2561 3 16 5120 661 5 8 10242 22 12 31 6 8 10241 7 8 10240 1输出:21 1 21 2 20011 3 113 1 143 3 23 2 11 4 21 5 100000033 7 13 6 13 5 10
  • 从肢体语言到情绪对话,重新定义人与宠物的沟通方式
    凌晨三点,你的猫咪在猫砂盆反复进出 —— 是肠胃不适还是砂盆需要清理?传统宠物项圈只能记录活动量,却无法解读具体需求。随着中国宠物家庭渗透率突破 25%(2025 年《宠物行业白皮书》),“理解宠物” 已从情感需求升级为刚性技术需求。AI 眼镜正凭借实时感知与智能交互能力,成为破解人宠沟通壁垒的 “关键钥匙”。🔥 现有技术的三大瓶颈​单向监测而非双向交互:传统摄像头只能录像回看,智能项圈仅能记录步数,无法实现 “宠物表达→人类理解→即时反馈” 的闭环。​环境适应性差:普通视觉识别在光线不足、多宠物场景下准确率骤降至 60% 以下,难以应对真实家庭环境。​情感解析停留在表面:现有技术仅能识别 “高兴 / 生气” 等基础情绪,无法理解 “焦虑源于分离”“兴奋因为新玩具” 等复杂情感动机。二、AI 眼镜的三大技术突破:从 “看” 到 “懂” 的跨越​1. 多模态感知系统:构建宠物行为 “数字孪生”​(1)骨骼关键点动态捕捉​通过 16 通道红外摄像头 + IMU 传感器,实时追踪宠物 21 个关键部位(如犬类的耳部、尾部,猫科的胡须、爪部),精度达毫米级。某创业团队实测:对 “猫咪飞机耳 + 尾巴僵直” 的恐惧状态识别准确率达 94%,较传统视觉模型提升 35%。​(2)声纹情感频谱分析​结合 24kHz 高灵敏度麦克风与端侧 NPU 算力,实时解析宠物叫声的 128 维声纹特征(如频率波动、分贝变化)。当狗狗发出 300-500Hz 低频连续吠叫时,系统会判定为 “领地警戒”,并在眼镜镜片显示红色警示图标。​(3)环境数据融合建模​接入温湿度、气压等环境传感器,结合宠物行为数据构建动态模型。例如:当猫咪在 28℃环境中频繁舔毛,系统会优先提示 “可能中暑” 而非常规清洁行为。​2. 边缘计算 + 云端大脑:打造毫秒级响应引擎​(1)端云协同架构设计​边缘端:部署轻量化行为识别模型(模型体积 < 8MB),实现 200ms 内实时动作解析,续航达 12 小时以上。​云端:利用联邦学习技术持续优化情感算法,用户每交互 100 次,模型准确率提升 1.2%。​(2)算力优化黑科技​采用动态精度调整技术:日常互动时使用 INT8 量化模型降低功耗,检测到宠物异常行为(如连续 5 分钟呕吐)时自动切换 FP16 高精度模式,平衡性能与续航。​3. 拟人化交互系统:让沟通更有 “温度”​(1)动态语言生成引擎​基于宠物品种、年龄、性格生成专属语音反馈:​布偶猫蹭腿时:“主人,我毛茸茸的小脑袋蹭你就是想贴贴呀~”(软萌声线)​边境牧羊犬叼球时:“快陪我玩!我可是智商第一的狗狗,别偷懒哦~”(活泼声线)​(2)视觉化情绪图谱​在眼镜镜片实时显示宠物情绪热力图:绿色代表放松,黄色代表好奇,红色代表焦虑。某宠物医院实测:使用该功能后,主人对宠物情绪的判断准确率从 32% 提升至 81%。​三、未来几年技术演进路线图​1. 硬件形态:从 “辅助工具” 到 “隐形伙伴”​2025 年:柔性屏眼镜实现 30g 超轻量设计,支持 IP68 防水,可连续佩戴 8 小时​2027 年:光波导技术普及,镜片透明度提升至 95%,实现 “无感交互”​2030 年:脑机接口初步应用,直接解析宠物神经信号(试点犬类简单需求传递)​2. 算法突破:从 “行为识别” 到 “情感共情”​​技术维度2025 现状​2030 目标​核心突破点​情绪识别6 种基础情绪​22 种复杂情感(如嫉妒、怀念)​引入宠物行为学专家知识库​需求预测即时反应​提前 30 分钟预判需求(如预判猫咪即将磨爪)​结合生物周期节律建模​跨物种交互​犬猫为主​覆盖鸟类、仓鼠等 10 + 物种​多物种骨骼模型库构建​3. 场景拓展:从 “沟通工具” 到 “健康管家”​疾病预警:通过步态分析早期发现宠物关节炎(准确率 89%),比传统兽医诊断提前 3-6 个月​训练辅助:实时纠正宠物不良行为(如扑人、拆家),训练效率提升 40%​社交增强:生成宠物 “心情日记”,支持主人间分享互动,构建宠物社交元宇宙想了解更多资讯访问我的技术社区个人主页(简介含微信公众号入口)
  • [问题求助] 【比赛后】多久出结果以及多久发奖金?
    如题,一般比赛后,赛方会进行暗榜的测试,然后出最终结果,想问下是多久出结果以及多久发奖金呢?
  • [问题求助] 第24期
    容器不论什么时候分配给虚机,都会在固定时刻关闭吗?就是说容器的运行时间是固定的,还是关闭时间是固定的
总条数:190 到第
上滑加载中