852. 山脉数组的峰顶索引 (二分查找)

我的方法还是比较传统的思想:

先升后降   ------------ A 字型

提供c#答案如下: 

执行用时: 268 ms, 在Peak Index in a Mountain Array的C#提交中击败了7.23% 的用户

public class Solution {public int PeakIndexInMountainArray(int[] A) {int res = -1;int temp = 0;bool b = true;temp = A[0];if (A.Length < 3 || A.Length > 10000) return -1;for (int i = 1; i < A.Length; i++){#region 升序过程if (A[i] >= temp && b == true){temp = A[i];}else{b = false;}#endregion#region 降序过程if (A[i]<=temp&&b==false){temp = A[i];}else{res = i;}#endregion}return res;}
}

 

提供第二种c#方法:(位移)

执行用时: 120 ms, 在Peak Index in a Mountain Array的C#提交中击败了86.87% 的用户

public class Solution {public int PeakIndexInMountainArray(int[] A) {int l = 0, h = A.Length - 1, m;while (l> 1;if (A[m] > A[m - 1] && A[m] > A[m + 1]){return m;}else if (A[m] > A[m - 1] && A[m] < A[m + 1]){l = m;}else if (A[m] < A[m - 1] && A[m] > A[m + 1]){h = m;}else{return -1;}}return -1;}
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部