My solution:
class Solution { public boolean isMonotonic(int[] nums) { if(nums==null||nums.length<3){ return true; } int first = nums[0]; int second = nums[nums.length-1]; if(first<second){ return checkMonotonic(nums, true); }else{ return checkMonotonic(nums, false); } } private boolean checkMonotonic(int[] nums, boolean increase){ if(increase){ for(int i=0;i<nums.length-1;i++){ if(nums[i]>nums[i+1]){ return false; } } }else{ for(int i=0;i<nums.length-1;i++){ if(nums[i]<nums[i+1]){ return false; } } } return true; } }
A simple solution:
class Solution { public boolean isMonotonic(int[] nums) { if(nums==null||nums.length<3){ return true; } int inc=0, dec=0; for(int i=0;i<nums.length-1;i++){ if(nums[i]<nums[i+1]) inc++; else if(nums[i]>nums[i+1]) dec++; else{ inc++; dec++; } } return inc==nums.length-1 || dec==nums.length-1; } }