每日一题(寻找奇数,寻找峰值)

简介: 每日一题(寻找奇数,寻找峰值)

寻找奇数_牛客题霸_牛客网 (nowcoder.com)

 

#include <stdio.h>
#include<stdlib.h>
int main() {
    int n=0;
    int num=0;
    scanf("%d",&n);
    int* arr=(int*)malloc(sizeof(int)*n);
    int i=0;
    for(i=0;i<n;i++){
        scanf("%d",&arr[i]);//在循环内,使用scanf函数从标准输入读取一个整数,并将其存储在数组arr的相应位置
        num^=arr[i];
    }
    printf("%d\n",num);
    free(arr);
    arr=NULL;//将arr设置为NULL,以表示它不再指向任何有效的内存
    return 0;
}

寻找峰值_牛客题霸_牛客网 (nowcoder.com)

 

int findPeakElement(int* nums, int numsLen) 
{
    if (numsLen <= 1) 
    {
        return 0; // 数组长度为0或1,假定第一个元素为峰值
    }
    
    int i;
    for (i = 0; i < numsLen; i++) 
    {
        if ((i == 0 || nums[i-1] < nums[i]) && (i == numsLen-1 || nums[i] > nums[i+1])) 
        //这是一个if条件判断,用于确定当前元素nums[i]是否是一个峰值。它检查两个条件:
//i == 0 || nums[i-1] < nums[i]:确保当前元素大于或等于其左边的元素(如果存在的话)。
//i == numsLen-1 || nums[i] > nums[i+1]:确保当前元素大于或等于其右边的元素(如果存在的话)。
//如果这两个条件都满足,那么nums[i]就是一个峰值。
       {
            return i; // 找到峰值元素
        }
    }
    
    return -1; // 没有找到峰值元素
}
目录
打赏
0
0
0
0
13
分享
相关文章
|
9月前
|
数的范围(考查二分)
数的范围(考查二分)
60 0
|
9月前
|
DAY-6 | 牛客-NC107 寻找峰值:二分法巧得峰值
这是一个关于寻找数组峰值的编程问题,题目来源于牛客网的 NC107 题目。文章介绍了两种方法,其中重点讲解了使用二分法寻找峰值的思路:通过比较数组中点与相邻元素的大小,不断缩小搜索范围,直到找到峰值或范围只剩一个元素。二分法的时间复杂度为 O(logN),空间复杂度为 O(1)。文章还配有多张图解和代码示例来辅助理解。
86 4
|
9月前
春节每日一题~(自除数,除自身以外的数的乘积)
春节每日一题~(自除数,除自身以外的数的乘积)
42 1
K倍区间(蓝桥杯每日一题)
K倍区间(蓝桥杯每日一题)
73 0
leetcode-200:岛屿数量
leetcode-200:岛屿数量
55 0
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
leetcode每日一题.200:岛屿数量
leetcode每日一题.200:岛屿数量
96 0
leetcode 200 岛屿数量
leetcode 200 岛屿数量
100 0
leetcode 200 岛屿数量
leetcode-每日一题1200. 最小绝对差
leetcode-每日一题1200. 最小绝对差
115 0
leetcode-每日一题1200. 最小绝对差
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等