前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Leetcode -509.斐波那契数 -520.检测大写字母】

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

作者头像
YoungMLet
发布2024-03-01 09:53:27
860
发布2024-03-01 09:53:27
举报
文章被收录于专栏:C++/LinuxC++/Linux

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

方法一、递归

代码语言:javascript
复制
		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);
		}

方法二、动态规划

代码语言:javascript
复制
		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;

代码语言:javascript
复制
		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;
		}
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Leetcode - 509.斐波那契数
  • Leetcode - 520.检测大写字母
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com