每日一题来噜!(记负均正,旋转数组中的最小数字)

简介: 每日一题来噜!(记负均正,旋转数组中的最小数字)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  int n = 0;
  int arr[1000] = { 0 };
  int sum = 0;
  int count = 0;
  int count2 = 0;
  printf("请输入你要输入的整数个数\n");
  // 检查数组越界  
  scanf("%d", &n);
  if (n > 1000) {
    printf("输入的整数个数过多,最多只能输入1000个整数。\n");
    return 1; // 返回一个非零值表示出错  
  }
    for (int i = 0; i < n; i++)
    {
      scanf("%d", &arr[i]);
      if (arr[i] < 0) {
        count++;
      }
      else if (arr[i] > 0) {
        count2++;
        sum += arr[i];
      }
    }
    // 检查是否有正数输入以避免除零错误  
    if (count2 == 0) {
      printf("没有输入正数,无法计算平均值。\n");
      return 1; // 返回一个非零值表示出错  
    }
    printf("%d %d", count, sum / count2);
    return 0;
  }

int minNumberInRotateArray(int* nums, int size ) {
    int l = 0, r = size - 1;//定义左指针l指向数组的起始位置,右指针r指向数组的末尾位置
    while (l < r && nums[r] == nums[0]) 
        r--;//如果数组的末尾元素与起始元素相同,则可能有多个旋转点。因此,我们不断地将右指针向左移动,直到它指向一个与起始元素不同的值,或者左指针与右指针相遇
    if (nums[l] <= nums[r]) 
        return nums[0];//如果经过上述步骤后,左指针的值仍然小于或等于右指针的值,这意味着整个数组可能是已经排序的(没有旋转),或者只有一个旋转点且该点的值与起始值相同。在这种情况下,我们只需返回起始元素
    while (l < r) {
        int mid = (l + r)/2;//使用二分查找策略在数组中找到旋转点。每次取数组的中点mid,并检查该点的值是否小于起始元素。
//如果nums[mid] < nums[0],这意味着mid在旋转点的右侧,因此我们将右指针移动到mid。
//否则,mid在旋转点的左侧或就是旋转点本身,我们将左指针移动到mid + 1
        if (nums[mid] < nums[0]) 
            r = mid;
        else 
            l = mid + 1;
    }
    return nums[r];
}
相关文章
|
11月前
|
监控 搜索推荐 数据挖掘
精准定价与促销:CRM中的价格和折扣管理艺术
在当今竞争激烈的商业环境中,CRM系统是企业维持客户忠诚度和提高销售效率的重要工具。其中,价格和折扣的统一管控尤为关键,直接影响企业的盈利能力和市场竞争力。通过集中管理平台,企业能确保各渠道价格一致,避免混乱,维护品牌形象。合理的折扣政策可吸引新客户,提升老客户复购率。利用数据分析优化价格策略,监控并调整政策效果,确保利润最大化。CRM系统的这些功能有助于控制成本、提高客户满意度,最终实现销售增长和利润提升。
|
前端开发 Java Maven
【异常解决】org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character
【异常解决】org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character
2175 0
|
自然语言处理 监控 数据管理
《DAMA数据管理知识体系指南》备考笔记-第一章 数据管理 (4 分)
《DAMA数据管理知识体系指南》备考笔记-第一章 数据管理 (4 分)
347 0
|
数据安全/隐私保护
单片机课程设计——基于C51电子密码锁(源代码)
单片机课程设计——基于C51电子密码锁(源代码)
|
存储 缓存 分布式计算
必知的技术知识:Hbase配置(伪分布式模式)
必知的技术知识:Hbase配置(伪分布式模式)
1278 0
|
存储 监控 安全
HarmonyOS 实战项目
本章将介绍如何在 HarmonyOS 上进行实际项目开发。我们将从项目需求分析开始,逐步完成项目的设计、开发、测试和上线过程。
429 1
|
负载均衡 Kubernetes Cloud Native
|
移动开发 前端开发 weex
uniapp调试基座安装与移动端应用选型
uniapp调试基座安装与移动端应用选型
uniapp调试基座安装与移动端应用选型
|
Go 索引
Go 语言标准库 bufio 详解
Go 语言标准库 bufio 详解
214 1
|
JSON 安全 Java
谁家面试往死里问 Swagger 啊?
谁家面试往死里问 Swagger 啊?
309 0
谁家面试往死里问 Swagger 啊?