Question

665. Non-decreasing Array

Solution

题目大意:

思路:当前判断2的时候可以将当前元素2变为4,也可以将上一个元素4变为2,再判断两变化后是否满足要求。

Java实现:

public boolean checkPossibility(int[] nums) {
if (nums == null || nums.length < 3) return true; int count = 0;
// 判断前2个
if (nums[1] < nums[0]) {
nums[0] = nums[1] - 1;
count++;
}
for (int i = 2; i < nums.length; i++) {
if (nums[i] < nums[i - 1]) {
count++;
if (nums[i - 2] <= nums[i] - 1) {
nums[i - 1] = nums[i] - 1;
} else if (i == nums.length -1 || nums[i + 1] >= nums[i - 1] + 1) {
nums[i] = nums[i - 1] + 1;
} else {
return false;
}
}
} return count < 2;
}

别人实现:

public boolean checkPossibility(int[] nums) {
int cnt = 0; //the number of changes
for(int i = 1; i < nums.length && cnt<=1 ; i++){
if(nums[i-1] > nums[i]){
cnt++;
//modify nums[i-1] of a priority
if(i-2<0 || nums[i-2] <= nums[i])nums[i-1] = nums[i];
else nums[i] = nums[i-1]; //have to modify nums[i]
}
}
return cnt<=1;
}

最新文章

  1. 响应式web设计总结
  2. 再探@font-face及webIcon制作
  3. BZOJ2730——[HNOI2012]矿场搭建
  4. 原生JS实现瀑布流
  5. 常用颜色的RGB值
  6. $parse/$eval和$observe/$watch如何区分
  7. Android PagerAdapter
  8. sdk manager更新失败,显示Download interrupted: read timed out,应该如何解决?
  9. java使用注解和反射打造一个简单的jdbc工具类
  10. ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端
  11. Linux发行版 CentOS6.5下删除分区操作
  12. HTML,文字两端对齐
  13. 文件中间修改内容遇到OSEerror
  14. Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
  15. hadoop中 bin/hadoop fs -ls ls: `.&#39;: No such file or directory问题
  16. MySQL_插入更新 ON DUPLICATE KEY UPDATE
  17. Geohash距离估算
  18. Android之网络摄像头
  19. BitAdminCore框架更新日志20180519
  20. bms_output.put_line使用方法

热门文章

  1. (stm32f103学习总结)—输入捕获模式
  2. 聊聊 DisplayObject 的x/y/regX/regY/rotation/scale/skew 属性
  3. 分享一个react 图片上传组件 支持OSS 七牛云
  4. 【每日日报】第四十七天---&lt;div&gt;
  5. vue多个数据不一样的表格导出到同一张excel里面
  6. react在移动端的自适应布局
  7. Mybatis-Dao层实现(通过代理方式)
  8. Java学习day2
  9. form表单请求
  10. partTwo自动出题程序第三阶段