第三题,将每个元素都换成一次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

相关推荐

12-19 15:48
门头沟学院 Java
点赞 评论 收藏
分享
菜菜狗🐶:双非之光
找工作,你会甘心进小厂还...
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务