C语言leetcode集训一:数组

news2024/12/26 11:46:10

         为了进一步巩固C语言基础,同时进一步了解leetcode刷题的流程,开始进行C语言的集训,今天是第一天,看看我都做了哪些题,因为周末,有点颓废,所以基本上都是简单题,现在只想睡觉......

          有关数组的知识想必应该不用多说,主要是了解数组的存储结构,长度索引和函数传参,下面看看都有哪些题型

1.搜索旋转排序数组

 int search(vector<int>& nums, int target) {
     for(int i=0;i<nums.size();i++)
   {
       if(nums[i]==target)
       {
           return i;
           break;
       }
       
   }
   return -1;

           这里给出的代码都是核心代码模式,都是具有该功能的函数实现,但其实在以后的公司面试中,ACM模式是很重要的,ACM模式就是让你直接赋值,自己输入输出实现功能,相比核心代码模式要难一点。

           这道题我不明白为什么是中等难度,不就是在数组中寻找目标值的下标索引吗,没什么难度啊。

2.搜索旋转排序数组中的最小值

 int findMin(vector<int>& nums) {
        int min=1000;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]<min)
            {
                min=nums[i];
            }
        }
        return min;
    }

         这道题就是寻找最小值,更没有难度了,先定义一个最小值,一般需要比较大,然后遍历数组,如果找到比这个最小值min还小的值,更新最小值min,最后返回最小值min

3.斐波那契数

int fn[1000];
    int fib(int n) {
     fn[0]=0,fn[1]=1;
     for(int i=2;i<=n;i++)
     {
         fn[i]=fn[i-1]+fn[i-2];
     }
      return fn[n];
    }

            这道题也算是数组的经典题目了,求斐波那契数列的第n项,解题思路是:先定义一个全局的辅助函数,然后定义斐波那契数列的前两项,循环通项公式即可。

4.爬楼梯

 int f[1000];
    int climbStairs(int n) {
        f[0]=f[1]=1;
        for(int i=2;i<=n;i++)
        {
            f[i]=f[i-1]+f[i-2];
        }
    return f[n];
    }

      看到这你可能就会有疑问,这不是跟上一题的代码一样吗,你耍我呢,我知道你急,但你先别急,这道题其实就是在求斐波那契的第n项,怎么分析出来呢?听我细细道来

      在没有思路时,我们可以看示例来列举,在距离楼顶只有0阶时,有1种办法;在距离楼顶只有1阶时,有1种方法;在距离楼顶有2阶时,有2种方法,因为我们可以从距离楼顶只有1阶上来,这样和距离楼顶只有1阶时一样,也可以从距楼顶有2阶上来,这样一次走2阶,加起来就是2种方法;在距离楼顶有3阶时,可以先上1阶,从距离楼顶只有2阶上来,这样就和前面一样的方法了,是2种,也可以上2阶,然后就和距离楼顶只有1阶一样了;同理在距离楼顶4阶时,可以先上1阶,后面和距离3阶一样,或者先上2阶,后面和距离2阶一样,这样就很容易想到是斐波那契额问题啦!

5.猜数字

int game(vector<int>& guess, vector<int>& answer) {
          int cnt=0;
          for(int i=0;i<3;i++)
          {
              cnt+=(answer[i]==guess[i])?1:0;
          }
          return cnt;
    }

      这道题也是简单题,就是遍历两个数组,看相同索引下两个数组的值是否相同,相同计数器就加1,不相同加0。

6.拿硬币

int minCount(vector<int>& coins) {
         int cnt=0;
         for(int i=0;i<coins.size();i++)
         {
             cnt+=(coins[i]+1)/2;
         }
         return cnt;
    }

      这道题其实就是看硬币数是奇数还是偶数的问题,如果coins[i]为奇数的话,求最少的次数肯定是先拿2枚,最后肯定要拿1枚,次数就是(coins[i]+1)/2;如果为偶数的话,次数本来应该写成coins[i]/2的,但C语言有向下取整的规则,所以我们可以统一写成(coins[i]+1)/2了。

       今天属实有点不想学,水了一篇博客,大家见谅。

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

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

相关文章

ultralytics yolo图像分类训练案例;pytorch自有数据集图像分类案例

1、ultralytics yolo图像分类训练案例 优点:使用方便,训练过程评估指标可以方便查看 缺点:自带模型少,可选择自定义小 参考:https://docs.ultralytics.com/tasks/classify/#val https://blog.csdn.net/weixin_42357472/article/details/131412851 1)数据集格式 https://…

一文让你认识什么是springboot(创建第一个 SpringBoot 程序)

文章目录 前言1. 环境准备2. Maven3. 第一个 SpringBoot 程序3.1 SpringBoot 介绍3.2 SpringBoot 项⽬创建3.2.1 使用 IDEA 创建3.2.2 网页版创建&#xff08;了解&#xff09; 3.3 项目代码和目录介绍3.3.1 观察pom⽂件3.3.2 父工程3.3.3 目录介绍 3.4 运行项目3.5 输出 Hello…

STM32——串口

串口发送/接收函数&#xff1a; HAL_UART_Transmit(); 串口发送数据&#xff0c;使用超时管理机制 HAL_UART_Receive(); 串口接收数据&#xff0c;使用超时管理机制 HAL_UART_Transmit_IT(); 串口中断模式发送 HAL_UART_Receive_IT(); 串口中断模式接收 HAL_UART_Tran…

线上业务优化之案例实战

本文是我从业多年开发生涯中针对线上业务的处理经验总结而来&#xff0c;这些业务或多或少相信大家都遇到过&#xff0c;因此在这里分享给大家&#xff0c;大家也可以看看是不是遇到过类似场景。本文大纲如下&#xff0c; 后台上传文件 线上后台项目有一个消息推送的功能&#…

thinkphp 使用array_reduce 处理返回的数据格式

我想要的效果&#xff1a; 不使用array_reduce 的效果 &#xff1a; 代码&#xff1a; public function teamList($userId,$good_id){$nowbuyers $this->order->where(good_id,$good_id)->count();$data GroupTotalOrder::alias(t_order)->where(merchant_Id,$u…

每日一题 2454. 下一个更大元素 IV(困难,单调栈)

首先考虑第一大整数问题维护一个单调栈&#xff0c;遍历 nums&#xff0c;弹出栈中所有小于 nums[i] 的数&#xff0c;而 nums[i] 就是这些被弹出的数的第一大整数&#xff0c;知道栈为空或者栈顶元素比 nums[i] 大&#xff0c;证明如下&#xff0c;首先由于是遍历&#xff0c;…

Knowledge Graph知识图谱—9. Knowledge Modeling

9. Knowledge Modeling & Ontology Engineering How should the knowledge in a KG be modeled? – Which classes of entities do we have? – Which relations connect them? – Which constraints hold for them? → these questions are defined in the ontology …

【智能家居】九、停车场车牌识别功能点(回调、解耦)

一、翔云 人工智能开放平台&#xff08;车牌识别&#xff09; 二、cJSON 库 三、实现代码 四、回调函数 五、人脸识别和车牌识别获取数据的区别 六、异步网络请求和同步网络请求的区别 七、解耦 一、翔云 人工智能开放平台&#xff08;车牌识别&#xff09; 翔云 人工智能开放…

vxe-table 右键菜单+权限控制(v3)

1.menu-config 是用于配置右键菜单的属性。通过 menu-config 属性&#xff0c;定义右键菜单的内容、显示方式和样式。 通过 menu-config 属性配置了右键菜单&#xff0c;其中的 options 属性定义了右键菜单的选项。用户在表格中右键点击时&#xff0c;将会弹出包含这些选项的自…

数据库系统原理与实践 笔记 #12

文章目录 数据库系统原理与实践 笔记 #12事务管理和并发控制与恢复(续)并发控制SQL-92中的并发级别基于锁的协议基于锁的协议的隐患锁的授予封锁协议两阶段封锁协议多粒度粒度层次的例子意向锁类型相容性矩阵多粒度封锁模式基于时间戳的协议基于时间戳协议的正确性基于有效性检…

mysql:用SHOW CREATE TABLE tbl_name查看创建表的SQL语句

https://dev.mysql.com/doc/refman/8.2/en/show-create-table.html 可以用SHOW CREATE TABLE tbl_name查看创建表的SQL语句。 例如&#xff0c;SHOW CREATE TABLE test_table;表示查询创建test_table表的SQL语句&#xff1a;

关于电动机智能综合保护器在煤矿内的应用分析-安科瑞 蒋静

摘要 &#xff1a;介绍了矿用电动机智能综合保护器系统的总体结构&#xff0c;采用直接将交流信号整流、滤波、调理、采样的方式变为微控制器能够识别的直流信号&#xff0c;通过对微控制器采集到的直流信号编程判断来实现对电动机的相关保护控制、故障显示与报警以及与上位机的…

Jmeter性能测试:ForEach控制器的用法解析(含视频讲解)

引言 最近我在进行JMeter性能测试时遇到了一些问题&#xff0c;特别是在使用ForEach控制器时感到有点棘手。 但是经过不断地摸索和实践&#xff0c;终于成功地掌握了这个神奇的工具&#xff0c;提高了我的测试效率。因此&#xff0c;今天我想和大家分享我的经验&#xff0c;让…

优思学院|如何建立公司运营指标体系?如何推行六西格玛改进运营指标?

关键绩效指标 (KPI) 是测量您团队或组织朝重要商业目标进展表现如何的量化指标&#xff0c;组织会在多个层面使用 KPI&#xff0c;这视乎您想要追踪何指标而定&#xff0c;您可以设定全组织的、特定团队的、或甚至是个人 KPI。 良好的KPI能让公司管理者掌握组织的营运是否进度…

【(较大规模)作业车间调度JSP】通过OR-Tools的区间变量建模求解的效率对比实验

文章目录 问题描述Python调用OR-Tools建模求解&#xff08;实验一&#xff09;1. 声明问题的模型2. 创建区间变量3. 创建约束条件4. 求解模型5. 基于 plotly 展示甘特图 不同场景下的求解效率对比实验二&#xff1a;工件的工序数有差异实验三&#xff1a;消除工件的加工时长差异…

php实现个性化域名(短网址)和个性化登录模版的解决方案

在PHP中&#xff0c;个性化域名通常指的是根据用户或业务需求动态生成具有特定规律的子域名。实现个性化域名的方法主要依赖于服务器配置和路由规则。下面是一些基本的步骤和考虑因素&#xff0c;以帮助你了解如何个性化域名&#xff0c;并了解这样做的好处。 如何实现个性化域…

Cohort Analysis是什么

Cohort Analysis 什么是Cohort Analysis Cohort Analysis 可以翻译成 群体分析 或 分组分析&#xff0c;其实是一种通过细分来研究数据的方法。如下表就是一个从每日新增维度细分的 Cohort Analysis 表格。 第一列是分组的维度&#xff0c;下表以用户新增的日期作为细分的维…

Docker安装与使用

Docker 1.初识Docker Docker如何解决大型项目依赖关系复杂&#xff0c;不同组件依赖的兼容性问题&#xff1f; Docker允许开发中将应用、依赖、函数库、配置一起打包&#xff0c;形成可移植镜像Docker应用运行在容器中&#xff0c;使用沙箱机制&#xff0c;相互隔离 Docker…

“未来医疗揭秘:机器学习+多组学数据,开启生物医学新纪元“

在当今的数字化时代&#xff0c;科技正在不断地改变着我们的生活&#xff0c;同时也为医疗领域带来了巨大的变革。随着机器学习的快速发展&#xff0c;以及多组学数据在生物医学中的应用&#xff0c;我们正开启一个全新的医疗纪元。这个纪元以精准诊断、个性化治疗和高效康复为…

体验即营销,如何用体验家实现高效的线索细分?

什么是线索细分&#xff1f; 线索细分&#xff0c;指的是将收集而来的线索根据用户行为、特征等信息划分成若干个小组&#xff0c;从而方便市场、运营等部门开展更精细化的营销动作。 为什么要进行线索细分&#xff1f; 不同的客户为企业带来的价值不同。许多情况下&#xff0c…