返回一个整数数组中最大子数组的和02
首先创建一个input.txt文件,我将其放在了D盘中
这个就是返回一个数组的子数组和的最大值的进阶,我的想法是:首先使用文件流读取文件,存入一个字符串数组中,在将字符串数组转化为整型数组,其他的基本和第一个的思路相同。
注:注意大数处理,这里我是用一个static方法来进行处理。
import java.io.BufferedReader; import java.io.FileReader; import java.math.BigInteger; import java.util.Arrays; import java.util.stream.IntStream; //返回子数组的最大值,文件操作 public class Test3 { public static void main(String[] args) throws Exception { String[] sp = null; //读取文件 BufferedReader br = new BufferedReader(new FileReader("D:/input.txt")); String str; while ((str = br.readLine()) != null){ sp = str.split(","); } //将字符串数组转化为整型数组 int[] array = Arrays.stream(sp).mapToInt(Integer::parseInt).toArray(); System.out.println(getMax(array)); } //用于接收数组,将其转化为数字并比较 public static int getMax(int array[]){ int[] arr = new int[100]; Bignum(array); int temp = 0; int max = 0; int sum = 0; for (int i = 0; i < array.length; i++) { sum += array[i]; if(sum <= 0){ sum = 0; } if(sum > 0){ max = sum; } } return max; } //判断大数 public static void Bignum(int[] array){ BigInteger[] big = new BigInteger[100]; for (int i = 0; i < array.length; i++) { if(!array.equals("")){ big[i] = new BigInteger(String.valueOf(array[i])); } } } }
由于所有的数据已经在input.txt中写好(当然我的数据和题目中的不同,测试所需),所以运行结束以后只有一个最大值。
有什么不足的欢迎大家指正。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署