NC107 寻找峰值(视频讲解+四种语言代码)
寻找峰值
https://www.nowcoder.com/practice/1af528f68adc4c20bf5d1456eddb080a?tpId=196&&tqId=37165&rp=1&ru=/activity/oj&qru=/ta/job-code-total/question-ranking
- 设计思想:
-视频讲解链接B站视频讲解
- 复杂度分析:
- 代码:
c++版本:
class Solution { public: /** * 寻找最后的山峰 * @param a int整型一维数组 * @param aLen int a数组长度 * @return int整型 */ int solve(int* a, int aLen) { // write code here' //因为题目说找到下标最大的山峰索引 //所以直接从数组的最后一个往前遍历 for(int i = aLen - 1; i >= 1; i --) { //因为是倒着的嘛,所以只需要当前元素跟前一个比, //因为默认右边小 if(a[i] >= a[i-1]){ return i; } } return 0; } };
Java版本:
import java.util.*; public class Solution { /** * 寻找最后的山峰 * @param a int整型一维数组 * @return int整型 */ public int solve (int[] a) { // write code here //因为题目说找到下标最大的山峰索引 //所以直接从数组的最后一个往前遍历 for(int i = a.length - 1; i >= 1; i --) { //因为是倒着的嘛,所以只需要当前元素跟前一个比, //因为默认右边小 if(a[i] >= a[i-1]){ return i; } } return 0; } }
Python版本:
# # 寻找最后的山峰 # @param a int整型一维数组 # @return int整型 # class Solution: def solve(self , a ): # write code here #因为题目说找到下标最大的山峰索引 #所以直接从数组的最后一个往前遍历 for i in range(len(a)-1,0,-1): #因为是倒着的嘛,所以只需要当前元素跟前一个比, #因为默认右边小 if a[i] >= a[i-1]: return i return 0
JavaScript版本:
/** * 寻找最后的山峰 * @param a int整型一维数组 * @return int整型 */ function solve( a ) { // write code here //因为题目说找到下标最大的山峰索引 //所以直接从数组的最后一个往前遍历 for(let i = a.length - 1; i >= 1; i --) { //因为是倒着的嘛,所以只需要当前元素跟前一个比, //因为默认右边小 if(a[i] >= a[i-1]){ return i; } } return 0; } module.exports = { solve : solve };
牛客题霸 文章被收录于专栏
本专栏主要是牛客题霸习题的讲解,有详细的考点分类,大家可以可以看看呦!!!