
目录题目思路Code题目题目内容小菊和小花是好朋友他们经常一起玩游戏。这天他们玩一个数字游戏获胜可以获得对方1杯奶茶。游戏规则小菊在纸上写了一排数组小花需要从中选择连续k个数字使得这k个数字的和最大。小花正确找到最大的值就是获胜小菊则提供1杯奶茶小花想获胜喝奶茶请你帮助她。输入描述第一行输入逗号分隔的整数数组-2147483648 单个数字 2147483647数组长度小于 10^6。第二行输入 k1 k 数组长度。输出描述输出连续 k 个数字的最大和。样例 1输入1,3,8,6,4,10 3输出20说明连续三个数 6、4、10 的和最大。思路整体思路维护固定长度滑动窗口。第一步计算前 k 个数之和作为初始窗口与答案。第二步窗口右移时加入右端新数并移出左端旧数。第三步每次移动后更新最大窗口和。边界处理从真实窗口初始化以处理全负数使用 64 位整数防止求和溢出。复杂度分析时间 O(N)额外空间 O(1)。Codeimport re import sys lines sys.stdin.read().splitlines() # 第一行按带符号整数提取兼容逗号和空格。 numbers list(map(int, re.findall(r-?\d, lines[0]))) k int(lines[1]) # window_sum 始终覆盖恰好 k 个连续元素先用首个真实窗口初始化。 # numbers 保存整排数字k 是窗口长度后续只比较长度恰好为 k 的连续片段。 window_sum sum(numbers[:k]) answer window_sum for right in range(k, len(numbers)): # 窗口右移一格时加入右端新数并移出下标 right-k 的旧数。 # 移动后的窗口覆盖下标 right-k1 到 right减去的 right-k 正好是刚离开窗口的元素。 window_sum numbers[right] - numbers[right - k] answer max(answer, window_sum) # 从真实窗口初始化保证全负输入不会被不存在的 0 窗口覆盖。 # 如果所有数字都为负数最大和仍然是某个真实窗口的负数不能用 0 作为初始答案。 print(answer)JSconst fs require(fs); const lines fs.readFileSync(0, utf8).split(/\r?\n/); // 带符号正则兼容逗号和空格分隔。 const numbers (lines[0].match(/-?\d/g) || []).map(Number); const k Number(lines[1]); // Number 安全整数范围足以容纳题目上限下的窗口和。 // numbers 保存整排数字k 是窗口长度后续只比较长度恰好为 k 的连续片段。 let windowSum numbers.slice(0, k).reduce((sum, value) sum value, 0); let answer windowSum; for (let right k; right numbers.length; right) { // 窗口右移一格只改变进入与离开的元素。 // 移动后的窗口覆盖下标 right-k1 到 right减去的 right-k 正好是刚离开窗口的元素。 windowSum numbers[right] - numbers[right - k]; answer Math.max(answer, windowSum); } // 从真实窗口初始化正确处理全负数组。 // 如果所有数字都为负数最大和仍然是某个真实窗口的负数不能用 0 作为初始答案。 console.log(answer);【华为od机试真题PythonJSJavaGo合集】【超值优惠】Py/JS/Java/Go合集【华为od机试真题Python】Python真题题库【华为od机试真题JavaScript】JavaScript真题题库【华为od机试真题JavaGo】JavaGo真题题库【华为od机试真题C】C真题题库【华为od机试真题C语言】C语言真题题库【华为od面试手撕代码题库】面试手撕代码题库【华为od机试面试交流群】【文章底部有二维码链接可扫码加交流群】华为OD机试:二本院校有机会吗? 有机会,但不大,大神除外!机考分数越高越好,所以需要提前刷题。机考通过后,如果没有收到面试邀请,也不要着急,非目标院校面试邀请发的时间比较晚。非目标院校今年有点难,机试至少要考到350分,所以需要疯狂刷题,华为OD机考是有题库的,最好在考前完所有题库题目。华为OD机试:跨专业可以参加华为OD可以,但是如果你的本科院校比较差,上岸概率不大。华为OD机试:华为OD简历被锁定机试通过,性格测试也通过,但是没人联系面试,发现简历被锁定。此时需要主动去联系HR。让他帮助你查询原因。