leetcode 70.爬楼梯+209.长度最小的子数组

news/2024/11/8 0:03:05/

70. 爬楼梯 - 力扣(LeetCode)

题目:

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

 示例:

 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶

2. 1 阶 + 2 阶

3. 2 阶 + 1 阶

 思路:

爬楼梯分为的两种方式:

当楼梯阶数大于2时,第一种:第一步爬1阶;第二种:第一步爬2阶。爬过一阶后,可以当做又是第一步爬。

方法一:递归

class Solution {Map<Integer,Integer> storeMap = new HashMap<>();public int climbStairs(int n) {if (n==1)return 1;if (n==2)return 2;if (null !=storeMap.get(n))return storeMap.get(n);else {int res = climbStairs(n-1)+climbStairs(n-2);storeMap.put(n,res);return res;}}
}

方法二:循环 (递归转换)

class Solution {public int climbStairs(int n) {//循环if(n==1)return 1;if (n==2)return 2;int p1 = 1;int p2 = 2;int res = 0;for (int i = 3; i <= n; i++) {res = p1+p2;p1 = p2;p2 = res;}return res;}
}

209. 长度最小的子数组 - 力扣(LeetCode)

题目描述:

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr],并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例:

输入:target = 7, nums = [2,3,1,2,4,3]

输出:2

解释:子数组 [4,3]是该条件下的长度最小的子数组。

 思路:开始用的双循环暴力枚举,结果超时了,改用滑动窗口法。

class Solution {public int minSubArrayLen(int target, int[] nums) {int res = Integer.MAX_VALUE;int sum = 0;int i = 0;int j = 0;while (i<nums.length){sum+=nums[i++];while (sum>=target){res = Math.min(res,i-j);sum -= nums[j++];}}return res == Integer.MAX_VALUE?0:res;}
}


http://www.ppmy.cn/news/64116.html

相关文章

2023年第三届长三角高校数学建模竞赛】A 题 快递包裹装箱优化问题 详细数学建模过程

1 题目 2022 年&#xff0c;中国一年的包裹已经超过 1000 亿件&#xff0c;占据了全球快递事务量的一半以上。近几年&#xff0c;中国每年新增包裹数量相当于美国整个国家一年的包裹数量&#xff0c; 十年前中国还是物流成本最昂贵的国家&#xff0c;当前中国已经建立起全世界…

MySQL基础(十八)MySQL8其它新特性

1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本&#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强&#xff0c;开发者对MySQL的源代码进行了重构&#xff0c;最突出的一点是MySQL Optimizer优化器进行了改进。不仅在速度上得…

前端CSS学习(二)

1、选择器进阶 1.1 后代选择器&#xff1a;空格 作用&#xff1a;根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素 选择器语法&#xff1a;选择器1 选择器2 { css } 结果&#xff1a;在选择器1所找到标签的后代(儿子、孙子、重孙...)中&#xff0c;找到满足选择器2的…

聊聊Doris向量化执行引擎-过滤操作

聊聊Doris向量化执行引擎-过滤操作 Doris是开源的新一代极速MPP数据库&#xff0c;和StarRocks同源&#xff0c;采用全面向量化技术&#xff0c;充分利用CPU单核资源&#xff0c;将单核执行性能做到极致。本文&#xff0c;我们聊聊过滤操作是如何利用SIMD指令进行向量化操作。 …

Unity开发——如何在协程中进行回调

在Unity开发中&#xff0c;协程是一种实用的异步编程方法&#xff0c;要在协程中进行回调&#xff0c;可以使用委托&#xff08;delegate&#xff09;、Action或UnityAction 一、委托&#xff08;delegate&#xff09; 下面是一个使用协程和回调的简单示例&#xff1a; // 声明…

Window下载Android源码

Android 10源码下载 想要研究Android 源码的同学可以用此方法进行下载。源码从清华大学开源软件镜像站&#xff08;https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/&#xff09;下载。 使用Linux的同学直接参照清华镜像站提供的使用帮助(https://mirrors.tuna.tsinghua.edu…

修改lib64/l.ibc.so6导致系统命令都不能用

问题&#xff1a;想升级libc-2.12.so到libc2.17&#xff0c;拷贝了一个libc2.17到lib64下&#xff0c;然后建立软连接到l.ibc.so6&#xff0c;导致系统除了cd之类的命令&#xff0c;其他都不能使用 报错&#xff1a;relocation error: /usr/lib64/libc.so.6: symbol _dl_start…

肝一肝设计模式【七】-- 代理模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 肝一肝设计模式【五】-- 适配器模式 传送门 肝一肝设计模式【六】-- 装饰器模式 传送门 文…