给定长度为n的数组与整数k 选取k个元素求解最大force值
可用测试用例汇总
以下测试用例覆盖了边界场景、异常输入、现有代码逻辑缺陷验证等多类情况:
- 测试用例1:包含负数的场景(可检出原代码逻辑缺陷)
输入:
3 1 -10 2 1
预期输出:100
说明:原代码升序排序后会取最大的正数2计算得到4,但实际绝对值更大的负数-10的平方更高,符合要求的结果应为100。
- 测试用例2:数组全为负数的场景
输入:
3 2 -5 -3 -1
预期输出:34
说明:正确选择应为-5和-3,平方和为25+9=34,原代码升序排序后会取-3和-1计算得到10,逻辑错误。
- 测试用例3:正负混合、大绝对值负数更多的场景
输入:
5 3 -8 -7 3 2 1
预期输出:122
说明:正确选择为-8、-7、3,平方和为64+49+9=122,原代码仅选取最大的三个正数计算得到14,逻辑错误。
- 测试用例4:包含0的混合场景
输入:
3 2 -2 0 1
预期输出:5
说明:正确选择为-2和1,平方和为4+1=5,原代码会选取1和0计算得到1,逻辑错误。
- 测试用例5:元素绝对值大小相同的正负混合场景
输入:
3 2 -5 5 3
预期输出:50
说明:正确选择为-5和5,平方和为25+25=50,原代码会选取5和3计算得到34,逻辑错误。
- 测试用例6:k=0的边界场景(若题目允许k取0)
输入:
5 0 1 2 3 4 5
预期输出:0
说明:不选取任何元素时force总和为0。
- 测试用例7:大数值防溢出场景
输入:
2 1 1000000000 -999999999
预期输出:1000000000000000000
说明:验证大数平方计算不会出现溢出问题,原代码使用long类型可正常输出结果。
- 测试用例8:全重复元素场景
输入:
4 2 -5 -5 5 5
预期输出:50
说明:无论选取哪两个元素平方和均为50,验证逻辑通用性。
- 测试用例9:单元素边界场景
输入:
1 1 -7
预期输出:49
说明:仅一个可选元素时直接返回其平方值。
内容的提问来源于stack exchange,提问作者Akshay Tekam
相关产品推荐
相关产品推荐

