【Leetcode -509.斐波那契数 -520.检测大写字母】

news2024/11/25 15:21:46

Leetcode

  • Leetcode - 509.斐波那契数
  • Leetcode - 520.检测大写字母

Leetcode - 509.斐波那契数

题目:斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。
该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。
也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。

示例 1:
输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

示例 2:
输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2

示例 3:
输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3

方法一、递归

		int fib(int n)
		{
		    //0或1返回0或1
		    if (n <= 1)
		        return n;
		
		    //2返回1
		    else if (n == 2)
		        return 1;
		
		    //大于2的数返回前两个数之和
		    else
		        return fib(n - 1) + fib(n - 2);
		}

方法二、动态规划

		int fib(int n)
		{
		    //0返回0
		    if (n == 0)
		        return 0;
		
		    //从第三位开始等于前两项的和,迭代往后走
		    int p = 0, q = 0, r = 1;
		    for (int i = 2; i <= n; i++)
		    {
		        p = q;
		        q = r;
		        r = p + q;
		    }
		    return r;
		}

如图所示,相加完后迭代往后走;
在这里插入图片描述

在这里插入图片描述

Leetcode - 520.检测大写字母

题目:我们定义,在以下情况时,单词的大写用法是正确的:

全部字母都是大写,比如 “USA” 。
单词中所有字母都不是大写,比如 “leetcode” 。
如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。

示例 1:
输入:word = “USA”
输出:true

示例 2:
输入:word = “FlaG”
输出:false

思路是直接遍历字符串,首先判断第一个字母是否是大写字母,如果是,将flag标记为1,再遍历剩下的字母,统计大写字母的个数;最后判断只有一个大写字母且是第一个字母大写,或者全是小写字母,或者全是大写字母,符合其中一个就返回true,否则返回false;

		bool detectCapitalUse(char* word)
		{
		    //只有一个字母,返回true
		    if (strlen(word) == 1)
		        return true;
		
		    //flag记录第一个是大写字母,是大写字母的话改成1
		    //uppercase记录大写字母的个数
		    int flag = 0, uppercase = 0;
		    if (word[0] >= 'A' && word[0] <= 'Z')
		        flag = 1;
		
		    //遍历字符串,统计大写字母数量
		    for (int i = 0; i < strlen(word); i++)
		    {
		        if (word[i] >= 'A' && word[i] <= 'Z')
		            uppercase++;
		    }
		
		    //最后判断只有首字母大写,或者全是大写字母,或者uppercase等于0,即全是小写字母,其中一个为1,就返回true
		    if (uppercase == 1 && flag || uppercase == strlen(word) || !uppercase)
		        return true;
		
		    //否则返回false
		    return false;
		}

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

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

相关文章

node笔记_koa框架是什么?

文章目录 ⭐前言⭐ koa框架是如何发展而来的&#xff1f;⭐ koa框架的基本使用&#x1f496; 安装 koa&#x1f496; koa的Middleware示例&#x1f496; 支持xml ⭐ 结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文介绍node的一个web框架koa。 往期文章 node_window…

第三章: Mybatis-Plus 的通用CRUD API 练习使用

目录 1. Insert 操作 -> Create 1.1: TableId 的 id策略 1.2: TableField 2. Update 操作 -> Update 2.1: 根据 ID 更新 2.2: 根据条件更新 3. Delete 操作 -> Delete 3.1: deleteById 3.2: deleteByMap 3.3: delete 3.4: deleteBatchIds 4. Select 操作 -&g…

Redis修炼 (15. redis的持久化-RDB)

RDB 就是 redis database backup file 数据备份文件 就是把内存中的所有数据都保存在磁盘中。 save 注意这个保存过程是主进程在做 因为redis 是单线程 所有其他所有请求都会被卡死。 bgsave 这个稍微友好一点 是子进程 执行&#xff0c;避免主进程收到影响。 redis在服务停机…

【JavaWeb】-- Maven基础、MyBatis

文章目录 Maven基础1.Maven简介1.1 Maven模型1.2 仓库 2.Maven安装3.Maven基本使用3.1 Maven常用命令3.2 Maven生命周期 4.IDEA使用Maven4.1 IDEA配置Maven环境4.2 Maven坐标4.3 IDEA 创建Maven项目 5.依赖管理5.1 使用坐标引入jar包5.2 依赖范围 MyBatis1.MyBatis概述1.1JDBC的…

JDK、JRE和JVM三者的区别和联系

一、JDK、JRE、JVM分别是什么 &#xff08;一&#xff09;JDK JDK&#xff0c;全称Java Development Kit&#xff0c;是 Java 语言的软件开发工具包&#xff0c;主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心。 &#xff08;二&#xff09;JRE J…

Day970.数据库表解耦 -遗留系统现代化实战

数据库表解耦 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于数据库表解耦的内容。 微服务拆分之初&#xff0c;需要搭建好的两个基础设施&#xff0c;一个是基于开关的反向代理&#xff0c;另一个是数据同步机制。 有了这两个设施做保障&#xff0c;接下来就可以…

Python合并同名Labelme标注文件内容

Python合并同名Labelme标注文件内容 前言前提条件相关介绍实验环境Python合并同名Labelme标注文件内容Json文件代码实现输出结果json文件 前言 本文是个人使用Python处理文件的电子笔记&#xff0c;由于水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。 (https://b…

Sping核心知识点总结

Spring框架日渐成熟&#xff0c;已经成为java开发中比不可少的部分&#xff0c;框架这东西我的理解里属于工具型应用&#xff0c;意味着如果没有大量实践之前之间研究理论 研究源码之类的 体会会很效率会很低&#xff0c;所以个人建议萌新先找个项目做一做&#xff0c;感受一下…

【C/C++的内存管理】

欢迎阅读本篇文章 前言&#x1f355;1. C/C内存分布1.1有关C/C的一道题目 &#x1f355;2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free&#x1f355;3. C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 &#x1f355;4. operator …

论国内如何免费使用GPT4

什么是GPT&#xff0c;能做什么&#xff1f; GPT&#xff0c;全名为Generative Pre-trained Transformer&#xff0c;是一类基于Transformer架构的自然语言处理模型。GPT的主要功能包括&#xff1a; 文本生成&#xff1a;能够根据给定的输入生成合理的文本&#xff0c;如文章、…

双向链表实现约瑟夫问题

title: 双向链表实现约瑟夫问题 date: 2023-05-16 11:42:26 tags: **问题&#xff1a;**知n个人围坐在一张圆桌周围。从编号为k的人开始报数&#xff0c;数到m的那个人出列&#xff1b;他的下一个人又从1开始报数&#xff0c;数到m的那个人又出列&#xff1b;依此规律重复下去&…

Java进阶-Collection集合

1.Collection集合 1.1数组和集合的区别 相同点 都是容器&#xff0c;可以存储多个数据 不同点 数组的长度是不可变的&#xff0c;集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型&#xff0c;如果要存基本数据类型&#xff0c;需要存对应的…

ubuntu20.04开机界面黑屏,只有一个光标闪烁

接下来我就把我的解决方法完整的发出来&#xff0c;因为我也是非常的绝望&#xff0c;终于在不断尝试中解决了问题 首先开机界面就是这个东西&#xff0c;一直卡在这不动了&#xff0c;原因就是&#xff0c;内存被用完了&#xff0c;无法加载出图形化界面 解决方法&#xff1…

springboot基于vue的MOBA类游戏攻略分享平台

系统分析 系统可行性分析 1、经济可行性 由于本系统本身存在一些技术层面的缺陷&#xff0c;并不能直接用于商业用途&#xff0c;只想要通过该系统的开发提高自身学术水平&#xff0c;不需要特定服务器等额外花费。所有创造及工作过程仅需在个人电脑上就能实现&#xff0c;使…

Redis学习--下载与安装

Redis下载与安装 Redis安装包分为windows版和Linux版&#xff1a; Windows版下载地址&#xff1a;https://github.com/microsoftarchive/redis/releases Linux版下载地址&#xff1a;https:/download.redis.io/releases 在Linux系统安装Redis步骤&#xff1a; 1.将Redis安装…

JENKINS部署-学习踩坑日记

1、JENKINS情况介绍 使用docker安装JENKINS&#xff0c;教程可以在网上搜到&#xff0c;步骤执行&#xff1b; 2、服务器情况介绍 JENKINS部署在A服务器上面&#xff0c;要把项目从gitlab上面拉取下来&#xff0c;然后编译推送jar到B服务器&#xff0c;然后通过docker-compose…

Linux:文本三剑客之sed编辑器

Linux&#xff1a;sed编辑器 一、sed1.1 sed编辑器1.2 sed编辑器的工作流程1.3 命令格式1.4常用选项1.5 常用操作1.6 实际应用 一、sed 1.1 sed编辑器 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命…

理解JVM

认识JVM Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 字节码的虚拟机。 什么是字节码&#xff1f; 字节码就是jvm能理解的代码。即扩展名为 .class 的文件。 我们日常的java文件先编译成.class 文件 然后在jvm上运行。 个人觉得 内存区域是理解JVM相关的基石。所以彻…

微服务简介,SpringCloud Alibaba Nacos的安装部署与使用,Nacos集成springboot

目录 一.认识微服务 1.0.学习目标 1.1.单体架构 单体架构的优缺点如下&#xff1a; 1.2.分布式架构 分布式架构的优缺点&#xff1a; 1.3.微服务 微服务的架构特征&#xff1a; 1.4.SpringCloud 1.5Nacos注册中心 1.6.总结 二、Nacos基本使用 &#xff08;一&…

【C++】深入剖析C++11新特性

目录 一、C11简介 二、统一的列表初始化 1.&#xff5b;&#xff5d;初始化 2.std::initializer_list 三、声明 1.auto 2.decltype 3.nullptr 四、范围for 五、final和oberride 六、STL中一些变化 1.array 2.forward_list 3.unordered_map和unordered_set 七、右…