在Java中,求最小正子序列和是一個(gè)比較常見的問題,通常可以通過動(dòng)態(tài)規(guī)劃算法來解決。
public static int minSubArray(int[] arr) { int minSum = Integer.MAX_VALUE; int sum = 0; for (int i = 0; i< arr.length; i++) { sum += arr[i]; if (sum >0) { sum = 0; } else { minSum = Math.min(minSum, sum); } } return minSum; }
以上是一個(gè)比較常見的解法,其核心思路是通過一個(gè)變量sum來記錄當(dāng)前子序列的和,如果當(dāng)前子序列和大于0,則將sum重置為0,否則更新最小子序列和的變量minSum。
需要注意的是,由于題目要求的是正數(shù)的最小子序列和,因此求解時(shí)需要將sum重置為0。