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

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

寻找奇数_牛客题霸_牛客网 (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; // 没有找到峰值元素
}
相关文章
|
7月前
|
算法
DAY-6 | 牛客-NC107 寻找峰值:二分法巧得峰值
这是一个关于寻找数组峰值的编程问题,题目来源于牛客网的 NC107 题目。文章介绍了两种方法,其中重点讲解了使用二分法寻找峰值的思路:通过比较数组中点与相邻元素的大小,不断缩小搜索范围,直到找到峰值或范围只剩一个元素。二分法的时间复杂度为 O(logN),空间复杂度为 O(1)。文章还配有多张图解和代码示例来辅助理解。
76 4
|
7月前
春节每日一题~(自除数,除自身以外的数的乘积)
春节每日一题~(自除数,除自身以外的数的乘积)
35 1
|
7月前
每日一题(最大连续1的个数,完全数计算)
每日一题(最大连续1的个数,完全数计算)
37 0
|
7月前
|
人工智能 算法 Java
K倍区间(蓝桥杯每日一题)
K倍区间(蓝桥杯每日一题)
67 0
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
|
人工智能
蓝桥杯:k倍区间
蓝桥杯:k倍区间
64 0
每日一题——最低加油次数
每日一题——最低加油次数
107 0
每日一题——最低加油次数
【力扣每日一题:8-04】611. 有效三角形的个数【中等】
【力扣每日一题:8-04】611. 有效三角形的个数【中等】