Math.max(),比较的是两个同一类型数据的大小,取较大的值返回文章来源:https://www.toymoban.com/news/detail-505970.html
public int maxSubArray(int[] nums) {
int pre = 0, maxAns = nums[0];
for (int x : nums) {
pre = Math.max(pre + x, x);
maxAns = Math.max(maxAns, pre);
}
return maxAns;
}
}
值得注意的是,这里面的两个参数如果指向同一个逻辑地址去取相同数据的话,就会报错,原因是源码不允许数据跟它本身相比较(就是说不能比较都是从同一逻辑地址取出来的两个数据),但是不同逻辑地址取出来的两个值相等的数据是可以进行比较的。
上面代码中的pre就是先赋值,创建出新的栈空间分配给pre,然后与maxAns从已经存在的逻辑地址空间中取出nums[0]的值,再进行比较,尽管循环的第一步两个变量的值一样,但因为是从不同逻辑地址取出来的数据,就不会报错。否则代码运行会报错;文章来源地址https://www.toymoban.com/news/detail-505970.html
到了这里,关于Java中Math.max()用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!