leetcode (Non-decreasing Array)
阿新 • • 發佈:2018-12-01
Title:Non-decreasing Array 665
Difficulty:Easy
原題leetcode地址:https://leetcode.com/problems/non-decreasing-array/
1. 注意下標為1的數;
注意當前的數比後面第二個數都大,將當前的數變小(先判斷);前的數比後面一個數大,將當前的數變大
時間複雜度:O(n),一次一層for迴圈,需要遍歷整個陣列。
空間複雜度:O(1),沒有申請額外的空間。
/** * 注意下標為1的數;注意當前的數比後面第二個數都大,將當前的數變小(先判斷);前的數比後面一個數大,將當前的數變大 * @param nums * @return */ public static boolean checkPossibility(int[] nums) { if (nums == null && nums.length <= 0) { return false; } int count = 0; for (int i = 1; i < nums.length; i++) { if (nums[i - 1] > nums[i]) { count++; if (count == 2) { break; } if (i == 1 || nums[i - 2] < nums[i]) { nums[i - 1] = nums[i]; } nums[i] = nums[i - 1]; } } if (count <= 1) { return true; } else { return false; } }