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

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

寻找奇数_牛客题霸_牛客网 (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; // 没有找到峰值元素
}
相关文章
|
12月前
【面试必刷TOP101】寻找峰值 & 数组中的逆序对
【面试必刷TOP101】寻找峰值 & 数组中的逆序对
56 0
|
11天前
lanqiao OJ k倍区间
lanqiao OJ k倍区间
8 0
|
5月前
|
算法
DAY-6 | 牛客-NC107 寻找峰值:二分法巧得峰值
这是一个关于寻找数组峰值的编程问题,题目来源于牛客网的 NC107 题目。文章介绍了两种方法,其中重点讲解了使用二分法寻找峰值的思路:通过比较数组中点与相邻元素的大小,不断缩小搜索范围,直到找到峰值或范围只剩一个元素。二分法的时间复杂度为 O(logN),空间复杂度为 O(1)。文章还配有多张图解和代码示例来辅助理解。
60 4
|
5月前
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
52 1
【每日一题Day167】LC1000合并石头的最低成本 | 区间dp
|
5月前
|
人工智能 算法 Java
K倍区间(蓝桥杯每日一题)
K倍区间(蓝桥杯每日一题)
54 0
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
|
人工智能
蓝桥杯:k倍区间
蓝桥杯:k倍区间
55 0
|
机器人 Java Python
leetcode每日一题.200:岛屿数量
leetcode每日一题.200:岛屿数量
77 0
【寒假每日一题】AcWing 3400. 统计次数(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
44 0
每日一题——最低加油次数
每日一题——最低加油次数
90 0
每日一题——最低加油次数