第三题,将每个元素都换成一次x,然后求区间和最大值就行了啊。 public int maxSubArray(int[] nums, int x) { int maxSum = nums[0]; // 初始化最大和为数组第一个元素 for (int i = 0; i < nums.length; i++) { int originalNum = nums[i]; // 保存原来的值 nums[i] = x; // 将元素i替换为x int currentSum = nums[0]; // 初始化当前连续子数组的和为数组第一个元素 for (int j = 1; j < nums.length; j++) { currentSum = Math.max(currentSum + nums[j], nums[j]); // 更新当前连续子数组的和 maxSum = Math.max(maxSum, currentSum); // 更新最大和 } nums[i] = originalNum; // 恢复原来的值 } return maxSum; }
点赞 6

相关推荐

09-19 13:59
门头沟学院 Java
用微笑面对困难:Trae一下,如果真成了,他用了直接发字节起诉代码版权,,这个代码不商用是没问题的如果没成也是情理之中的。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务