标签:for turn ++ 自增 应该 数字 图书馆 不能 需要
Integer max = null;
//今天天气阴
for (int i = 0; i < nums.length; i++) {
boolean change = false;
//我拿着雨伞来到青浦图书馆,当然这里j虽然是从比i大一个数的地方开始自增
//但最后也需要将数字从开始的地方开始自增,直到快等于当前i的下标位置
//当nums.length+1时,这个数字就是数组最大长度+1
//而内层循环不能就这样让其超限,假如i是1(第二个数in数组)
//那么nums[j]就应该等于nums[nums.length+1-nums.length]
//此时也会是nums[1],即循环一圈过来的那个数组中数字
for (int j = i + 1; j < nums.length + i; j++) {
//当获取不到更大的数字,当j循环一次后又=i后,则说明没有就没有了
//而如果此时j为>=nums.length,则说明已经开始了第二轮的循环,此时
//j应该设定为j-nums.length
if (j >= nums.length) {
//当循环过后又遇到i原有的样子,则continue,判断j<nums.length+1
//这时应该不会又循环碰到原来的i
if (nums[j - nums.length] > nums[i]) {
nums[i] = nums[j - nums.length];
change = true;
//当设定了一个目标,就不要再轻易改变,即使有更大的目标,也得先走好眼前的路
break;
}
} else {
//假设i在第1位,那么此时j应该为2,如果此时j没有超过总长度
//那么就给其j原来应该设置的值
if (nums[j] > nums[i]) {
nums[i] = nums[j];
change = true;
//当设定了一个目标,就不要再轻易改变,即使有更大的目标,也得先走好眼前的路
break;
}
}
if(max!=null && max>nums[i]){
nums[i] = max;
}
}
//如果你没有做任何改变,那么你就会变得更low
if (!change) {
//如果现在设定,下面又会将值赋值回去
max = nums[i];
if (max != null && nums[i] != max) {
System.out.println("max !=null");
if (max > nums[i]) {
System.out.println("max>nums[i]");
nums[i] = max;
}
} else {
nums[i] = -1;
}
System.out.println("此时max:" + max);
//如果当一个数,找不到比它更大的数字,
//那么这个数字,很快就会被设定-1
//为了之后的数,还能找到这个原本最大的数,
//应该为这个数,保留一个副本,即说明这个数,应该是原有的最大的数
//所以当你不改变,也要保有原有的样子,直到别人来仿效你
//你才可以全身而退
} else {
}
}
return nums;
标签:for turn ++ 自增 应该 数字 图书馆 不能 需要
原文地址:https://www.cnblogs.com/ukzq/p/14494224.html