LeetCode.941-有效山形数组(Valid Mountain Array)
这是悦乐书的第360次更新,第387篇原创 01 看题和准备今天介绍的是
存在一些具有0 < i < A.length-1的i,使得: A[0] < A[1] < ... < A[i-1] < A[i] A[i] > A[i+1] > ... > A[A.length-1] 例如: 输入:[2,1] 输入:[3,5,5] 输入:[0,3,2,1] 注意:
02 解题根据题目的规则,要满足山形数组的条件,不仅数组元素个数要大于等于三个,并且要存在一个值,使得在这个值之前的元素是递增形势,在这个值之后的元素是递减形势。 从数组第一个元素开始遍历,做递增判断,直到不满足条件为止,经历递增的判断后,需要判断索引是否位于中间,即不能是0或者是最后一个,再继续递减的判断,判断结束后,判断索引是否等于最后一位即可。 public boolean validMountainArray(int[] A) { if (A == null || A.length < 3) { return false; } int index = 0,n = A.length-1; while (index < n && A[index] < A[index+1]) { index++; } // 如果A是单调递增或者单调递减,直接返回false if (index == 0 || index == n) { return false; } while (index < n && A[index] > A[index+1]) { index++; } return index == n; } 03 小结算法专题目前已连续日更超过七个月,算法题文章228+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。 以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |