首页 > 编程语言 >每日OJ题_牛客_DP2跳台阶_动态规划_C++_Java

每日OJ题_牛客_DP2跳台阶_动态规划_C++_Java

时间:2024-10-01 13:52:47浏览次数:6  
标签:Java OJ int DP2 C++ 牛客 Scanner

目录

牛客_DP2跳台阶_动态规划

题目解析

C++代码

Java代码


牛客_DP2跳台阶_动态规划

跳台阶_牛客题霸_牛客网


题目解析

        当前值只和数组的前两个值有关,在往前面的就无关了,所以没必要申请一个数组,直接使用两个变量即可,这样空间复杂度就满足要求了。

C++代码

#include <iostream>
using namespace std;

int main()
{
    int n = 0;
    cin >> n;
    if(n < 3)
    {
        cout << n << endl;
        return 0;
    }
    int a = 1; // 第一个台阶跳法
    int b = 2; // 第二个台阶跳法
    for(int i = 3; i <= n; ++i)
    {
        // a b c
        int c = a + b;
        if(i == n)
        {
            cout << c << endl;
            break;
        }
        a = b;
        b = c;
    }
    return 0;
}

Java代码

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int a = 1, b = 1, c = 0;
        for(int i = 2; i <= n; i++)
        {
            c = a + b;
            a = b;
            b = c;
        }
        if(n == 0 || n == 1)
        {
            System.out.println(n);
        }
        else
        {
            System.out.println(c);
        }
    }
}

标签:Java,OJ,int,DP2,C++,牛客,Scanner
From: https://blog.csdn.net/GRrtx/article/details/142598999

相关文章

  • Protobuf 为什么这么快?解密它背后的高效编码机制与 C++ 实践
    目录1.Protobuf的基本使用1.1定义`.proto`文件1.2生成C++代码2.Protobuf的二进制编码机制2.1Varint编码:更少的字节,更高的效率2.2字段编号与键:精准定位每个数据3.C++序列化与反序列化示例3.1序列化示例3.2反序列化示例4.性能对比与优化分析4.1数据......
  • dev c++ cout中文显示不出来怎么办
    比如你随便创建了一个项目,起初“牛逼”这两个字应该是不显示出来的,但是当你的光标在这一行会时显示出来,等你编译运行时控制台也是乱码。点击工具(tool)选择第一个编译选项,填入:“-fexec-charset=GBK”并勾选选择第三个,编辑器选项取消这个勾选,点击确定就好了......
  • Qt/C++音视频开发 - Onvif时间设置
    Qt/C++音视频开发-Onvif时间设置介绍Onvif(OpenNetworkVideoInterfaceForum)是一种开放的网络视频接口标准,旨在实现不同品牌设备之间的互操作。为了确保网络摄像头和其他视频设备的时间同步,Onvif提供了时间设置功能,这对于准确记录事件和协调多个设备的活动至关重要。......
  • C++(关键字)
    5.作用域限定符::5.1名字空间(掌握)名字空间是一种代码的层级划分。#include<iostream>usingnamespacestd;//C++课程中几乎所有的类型(不包括基本数据类型)都在std中inta=1;//新建一个名字空间namespacemy_space{inta=3;strings="哈哈......
  • C++在游戏开发中的卓越性能:优势解析与代码示例
    在游戏开发领域,C++一直是一种备受青睐的编程语言。它以其高性能、灵活性和强大的功能集,成为了游戏开发者的首选语言之一。在本文中,我们将深入探讨C++在游戏开发中的优势,并提供一些代码示例来展示这些优势是如何在实际开发中发挥作用的。高性能与低级控制C++提供接近硬件......
  • 踏上C++游戏开发之旅:初学者指南与实战代码
    游戏开发是一个充满挑战和创造力的领域,而C++作为其中的一种强大工具,为开发者提供了实现他们最狂野游戏创意的能力。如果你是一个初学者,想要开始学习C++游戏开发,那么这篇文章将为你提供一条清晰的学习路径和实用的代码示例,帮助你迈出第一步。1.基础知识:C++和计算机科学在......
  • C++ 语言特性04 - decltype关键字
    一:概述        decltype是C++11引入的一个关键字,用于查询表达式的类型,而不对表达式进行求值。它的主要作用是在编译时确定变量或表达式的类型,非常适合在模板编程和泛型编程中使用。二:使用场景    1.获取变量的类型intx=10;decltype(x)y=20;//......
  • C/C++算法编程笔记(2024.9.26-9.30)
    一、并查集学习一:1、寻找根节点(两种)intfind(intx){if(x!=city[x]) city[x]=find(city[x]);returncity[x];}intfind(intx){ returnfa[x]==x?x:fa[x]=find(fa[x]);}2、合并不同集合voidmerge(intx,inty){inta=find(x);intb......
  • 【C++】set详解
    ......
  • 南沙C++信奥赛陈老师解一本通题: 1963:【13NOIP普及组】小朋友的数字
    ​ 【题目描述】有 nn 个小朋友排成一列。每个小朋友手上都有一个数字,这个数字可正可负。规定每个小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋友手上的数字之和的最大值。作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:......