アレイの非減少数になる変更
Input: [4,2,3]
Output: True
Explanation: You could modify the first 4 to 1 to get a non-decreasing array.
件名の説明:
アレイのみ配列の非減少数になる改変することができるかどうかを決定します。
アイデアの分析:
NUMS [I] <本変形例は、アレイiが非減少となり、その後の動作に影響を及ぼさない配列の前に可能にするようにNUMS [I-1]、変更するアレイのどの検討する必要があると、表示されます。あなたがNUMSを変更する場合は、この数が多くなると、優先度NUMS [I-1] = NUMS [i]は、[I] = NUMS [I-1]、その後、NUMS [i]は、NUMS以上があるかもしれないので、[I + 1 】大きな、従ってその後の動作に影響を与えます。別の場合には[I] = NUMS [I-1] NUMSを変更し、[I] <NUMS [I-2] NUMSある= NUMS [I]配列は、配列がNUMSを変更することができる非減少することができない[I-1 ]。
コード:
public boolean checkPossibility(int []nums){
int cnt =0;
for(int i=1;i<nums.length&&cnt<2;i++){
if(nums[i]>=nums[i-1])
continue;
cnt++;
if(i-2>=0&&nums[i-2]>nums[i]){
nums[i]=nums[i-1];
}else{
nums[i-1]=nums[i];
}
}
return cnt<=1;
}