题目描述: 
哈喽老铁,我是黑蓝紫红,看完题目,内心有想法了吗?
思路分析:
如果规定输入的数全是正数,那么就是我们特喜欢的,全部相加,即就是结果;
但是"可恶"的是白王子给的数字,有正有负,就给这道题赋予了难度;我们应该先排序,在有负数的前提下, 删掉最小的数,而且每个数都加了这个负数;那么最后得到的数就是最小的;
直接上代码
import java.util.Arrays;//排序函数需要的导包,要提前声明
import java.util.Scanner;//键盘输入的导包
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while (T-- > 0) {
int n = sc.nextInt();
long[] arr = new long[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);//排序函数,它是增排序,java自带的
long ans = 0,sum = 0;
for (int i = 0; i < arr.length-1; i++) {
arr[i]+=sum;
if(arr[i]>=0) ans+=arr[i];//ans记录正数的和
else{
sum +=arr[i];//sum记录负数的和
}
}
System.out.println(sum+ans+arr[n-1]);
}
}
}
( 看到这儿,老铁不来个 一键三连,支持支持)
总结
多多重复,百炼成钢