赞
踩
目录
给定一个数组,数组中的每个元素代表该位置的海拔高度。0表示平地,>=1时表示属于某个山峰,山峰的定义为当某个位置的左右海拔均小于自己的海拔时,该位置为山峰。数组起始位置计算时可只满足一边的条件。
输入描述
一个整数数组
输出描述
输出符合条件的山峰的个数
示例1:
输入:
[0,1,2,3,2,4]
输出:
2示例2:
输入:
[3,0,3,4,1]
输出:
2
函数:
int validMountainCount(int* arr, int arrSize){ }
1:此题为leetcode模式,实现给定的函数即可。
2:题目还是比较简单的,没有什么复杂的算法,直接暴力的遍历每个数组元素,判断每个位置与其左右位置的高度关系即可。
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdbool.h>
- #include <math.h>
- #include <limits.h>
- #include <float.h>
- #include <regex.h>
- #include <ctype.h>
-
- #define CEILING_POS(X) ((X-(int)(X)) > 0 ? (int)(X+1) : (int)(X))
- #define CEILING_NEG(X) ((X-(int)(X)) < 0 ? (int)(X-1) : (int)(X))
- #define CEILING(X) ( ((X) > 0) ? CEILING_POS(X) : CEILING_NEG(X) )
-
- #define MIN(a, b) ((a) < (b)) ? (a) : (b)
- #define MAX(a, b) ((a) > (b)) ? (a) : (b)
-
- int cmpfunc (const void * a, const void * b) {
- return ( *(int*)a - *(int*)b );
- }
-
- int comp_str(const void* a, const void* b) {
- return strcmp(*(char**)a, *(char**)b);
- }
-
- //qsort(dp, m+1, sizeof(int), cmpfunc);
-
- /*
- char input[200000];
- fgets(input, 200000, stdin);
-
- //逗号分隔
- char* token = strtok(input, ",");
- int v[1000];
- int count1 = 0;
- while (token != NULL) {
- v[count1++] = atoi(token);
- token = strtok(NULL, ",");
- }*/
-
-
- int validMountainCount(int* arr, int arrSize){
- int result = 0;
- int i=0;
- while(true){
- if(i>=arrSize){
- return result;
- } else {
- //左边界
- if(i==0){
- if (arr[i+1] < arr[i]){
- result += 1;
- }
- } else if (i==arrSize-1){
- if (arr[i-1] < arr[i]){
- result += 1;
- }
- } else {
- if(arr[i-1] < arr[i] && arr[i+1] < arr[i]){
- result += 1;
- }
- }
- }
- i+=1;
- }
- }
-
- void main(){
-
- char input[200000];
- fgets(input, 200000, stdin);
-
- //逗号分隔
- char* token = strtok(input, ",");
- int v[1000];
- int count1 = 0;
- while (token != NULL) {
- v[count1++] = atoi(token);
- token = strtok(NULL, ",");
- }
-
- printf("%d",validMountainCount(v, count1));
-
- }
【华为od机试真题Python+JS+Java合集】【超值优惠】:Py/JS/Java合集
【华为od机试真题Python】:Python真题题库
【华为od机试真题JavaScript】:JavaScript真题题库
【华为od机试真题Java】:Java真题题库
【华为od机试真题C++】:C++真题题库
【华为od机试真题C语言】:C语言真题题库
【华为od面试手撕代码题库】:面试手撕代码题库
【华为od机试面试交流群:830285880】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。