C语言每日一题:7.寻找数组中心下标。

news2024/12/28 20:18:46

请添加图片描述

思路一:

暴力求解:
1.定义一个ps作为中间下标去记录下标值。
2.循环下标ps从头到位,定义四个变量分别是left sum_left,right,sum_right…
3.初始化left=ps-1和right=ps+1.当ps0—>就让sum_left=0,和psn-1->>>sum_right=0;
4.循环结尾判断sum_left==sum_right;相当跳出循环,返回下标。
时间复杂度:O(2(N^2))时间复杂度比较高。(在牛客上说超出时间限制说明我们的这个暴力求解的时间复杂度比较高)。


int pivotIndex(int* nums, int numsSize) {
    int n = numsSize;
    int ps = 0;
    int sum_left = 0;
    int sum_right = 0;
    while (ps <= n - 1)
    {
        sum_left = 0;
        sum_right = 0;
        int left = ps - 1;
        int right = ps + 1;

        if (right == n)
        {
            sum_right = 0;
        }
        else
        {
            while (right <= n - 1)
            {
                sum_right += nums[right];
                right++;
            }
        }

        if (left == -1)
        {
            sum_left = 0;
        }
        else
        {
            while (left >= 0)
            {
                sum_left += nums[left];
                left--;
            }
        }

        if (sum_left == sum_right)
        {
            break;
        }
        ps++;
    }
    if(sum_left == sum_right)
    return ps;

    return -1;
}

思路二:

1.定义一个ps作为中间下标去记录下标值。
2.循环下标ps从头到位,定义3个变量分别是 sum_left,right,sum_right…
3.初始化right=ps+1.当ps0—>就让sum_left=0,和psn-1->>>sum_right=0;
4,这个sum_left+=nums[ps-1]当前的数值中心下标的值是不参与计算的。
4.循环结尾判断sum_left==sum_right;相当跳出循环,返回下标。
时间复杂度:O(N^2)

int pivotIndex(int* nums, int numsSize){
    int n=numsSize;
    int ps=0;
    int sum_left=0;
    int sum_right=0;
    int right=0;

    while(ps<=n-1)
    {
        if(ps==0)
        {
            sum_left=0;
        }
        else
        {
            sum_left+=nums[ps-1];
        }

        right=ps+1;
        sum_right=0;
        if(ps==n-1)
        {
            sum_right=0;
        }
        else
        {
             while(right<=n-1)
             {
             sum_right+=nums[right];
             right++;
             }
        }

        if(sum_left==sum_right)
        {
             break;
        }  
        ps++;
    }
    if(sum_left==sum_right)
    return ps;

    return -1;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796104.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入探索文心千帆大模型平台:实现企业级大模型训练和推理

摘要&#xff1a;本文将介绍百度智能云推出的文心千帆大模型平台&#xff0c;以满足企业和个人客户的需求。通过该平台&#xff0c;用户可以进行大模型训练和推理&#xff0c;并且享受一站式的工具链和环境。作者将分享自己在平台上的亲身体验&#xff0c;并提供相关的代码示例…

阿里云RDS数据库高可用版升级为集群版

文章目录 1.在集群中添加两个只读实例1.1.点击添加只读实例1.2.配置实例的计费方式及所在可用区1.3.设置实例的资源规格1.4.选择实例使用的专有网络1.5.确认参数配置及订单信息1.6.查看购买的只读实例 2.开启RDS数据库的读写分离2.1.查看只读实例提供的集群地址2.2.开启RDS的读…

算法(2)

二叉树 镜像二叉树 树轴对称 第一个节点的左子树与第二个节点的右子树同步递归对比&#xff0c;第一个节点的右子树与第二个节点的左子树同步递归比较。 二叉树序列化、反序列化 当然你也可以根据满二叉树结点位置的标号规律来序列化&#xff0c;还可以根据先序遍历和中序遍…

客户体验:妙鸭相机(AI)与线下摄影的体验比较

Guofu 第 103⭐️ 篇原创文章分享 &#xff08;点击&#x1f446;&#x1f3fb;上方卡片关注我&#xff0c;加⭐️星标⭐️~&#xff09; &#x1f68f; 写在前面 最近 AI 的发展&#xff0c;每天都在刷新着我们的认知&#xff0c;人工智能已经渗透到我们生活的各个角落。其中&…

ssh2-sftp-client实现前端项目自动部署

首先要npm安装插件 npm i ssh2-sftp-client 项目中新建一个js文件 npm run build 之后在终端中 执行这个js文件就可以直接将文件上传到 服务器 import Client from ssh2-sftp-client; import { join } from path;const sftp new Client();const deploy async () > {try…

内存管理:判断对象是否存活

引用计数算法 引用计数算法&#xff08;Reference Counting&#xff09;判断对象是否存活的基本思路是&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用该对象时&#xff0c;计数器的值就加一&#xff1b;当引用失效时&#xff0c;计数器的值就减一&…

Vector - CAPL - 诊断模块函数(TP层配置)

诊断TP层常见参数值 网络层定时参数的放置 常见的时间参数在诊断数据交互中的位置&#xff0c;后续会专门出一期关于ISO 15765-2的介绍。 CAPL对于此类函数介绍 CanTpGetTimeoutAr & CanTpGetTimeoutAr long CanTpGetTimeoutAr(long connHandle); long CanTpSetTimeoutAr(…

RabbitMQ 教程 | RabbitMQ 简介

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

充分了解java阻塞队列机制

多线程基础 1.阻塞队列1.1 什么是 阻塞队列1.2 阻塞队列的特点 1.3 阻塞队列常用方法1.3.1 抛出异常:add、remove、element1.3.2 返回结果但是不抛出异常offer、poll、peek1.3.3 阻塞put和take1.3.4 小结 1.4 常见的阻塞队列1.4.1 ArrayListBlockingQueue1.4.2 LinkedBlockingQ…

国标GB28181协议视频平台EasyCVR修改录像计划等待时间较长的原因排查与解决

音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成&…

【PMP】有没有项目经理能看得懂这九张图?求挑战

这九张图&#xff0c;全是圈圈我的肺腑之言啊&#xff01;谁痛谁知道&#xff01; 做技术时&#xff0c;就想着30岁就转管理&#xff0c;管理岗位赚得多&#xff0c;结果发现全是烟雾弹。 做技术和代码打交道&#xff0c;做管理跟人打交道。天天开不完的会、说不完的话&#xf…

https证书怎么选择?

https证书即SSL数字证书&#xff0c;是遵守 SSL 协议的一种数字证书&#xff0c;由全球信任的证书颁发机构 (CA) 验证服务器身份后颁发&#xff0c;将 SSL 证书安装在网站服务器上&#xff0c;会激活挂锁和 https 协议。SSL 证书解决了网民登录网站的信任问题&#xff0c;网民可…

Java使用hive连接kyuubi

一、Maven依赖 <dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>2.3.9</version> </dependency> 二、相关配置信息 驱动类&#xff1a;org.apache.hive.jdbc.HiveDriver连接UR…

HDMI接口需注意的PCB可制造性设计问题

高清多媒体接口(High Definition Multimedia Interface)简称HDMI&#xff0c;是一种全数字化视频和声音发送接口&#xff0c;可以同时发送未压缩的视频及音频信号&#xff0c;且发送时采用同一条线材&#xff0c;大大简化了系统线路的安装难度&#xff0c;所以应用非常广泛&…

ubuntu初始化/修改root密码

1.登录ubuntu后&#xff0c;使用sudo passwd root命令&#xff0c;进行root密码的初始化/修改&#xff0c;注&#xff1a;这里需要保证两次输入的密码都是同一个&#xff0c;才可成功 ubuntugt-ubuntu22-04-cmd-v1-0-32gb-100m:~/ocr$ sudo passwd root New password: Retype…

《2023中国开发者调查报告》探索2023中国开发者的技术创新与挑战:AIoT、云原生、国产数据库等领域的发展与前景

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

2023最新Windows安装配置Redis教程,嘎嘎详细

虽然 Redis 官方网站没有提供 Windows 版的安装包&#xff0c;但可以通过 GitHub 来下载 Windows 版 Redis 安装包&#xff0c;下载地址&#xff1a;https://github.com/tporadowski/redis/releases。 注意&#xff1a;Windows 安装包是某位民间“大神”根据 Redis 源码改造的&…

mybatisPlus之通用枚举及字段类型处理器

目录 通用枚举 为什么需要枚举类 EnumValue 具体使用 字段类型处理器 为什么需要字段类型处理器 具体使用 通用枚举 为什么需要枚举类 类的对象只有有限个&#xff0c;确定的。举例如下&#xff1a; 星期&#xff1a;Monday(星期一)、......、Sunday(星期天)性别&#x…

SentencePiece android ndk编译

LLaMa等LLM语言模型一般使用SentencePiece tokenizer&#xff0c;在端侧部署需要编译和使用其c版本。 在安卓平台使用NDK编译 CMakeLists.txt需要进行一些修改&#xff1a; src/CMakeLists.txt如下位置加上log依赖&#xff0c;否则提示android log相关符号不存在。 此外&…

【云原生技术】高效、灵活、易于使用的低代码快速开发平台源码

PaaS低代码快速开发平台是一种快速开发应用系统的工具&#xff0c;用户通过少量代码甚至不写代码就可以快速构建出各种应用系统。 随着信息化技术的发展&#xff0c;企业对信息化开发的需求正在逐渐改变&#xff0c;传统的定制开发已经无法满足企业需求。低代码开发平台&#x…