行业知识
备赛蓝桥杯-算法-动态规划
2026-11-07 08:10:43
来源:互联网转载
一、简单
1.爬楼梯
题���:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶
示例 2:
输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶
提示:
- 1 1 -> 100 -> 4
2.1 ->11 >>1 ->110 ->6
3.&与运算,遍历每一位二进制数,都为1则结果为1,其它结果均为0
4.| 或运算,遍历每一位二进制数,两者有一方为1则结果都为1,只有两方都为0,结果才为0
5.^异或运算,遍历每一位二进制数,相异为1,相同为0
6.~取反运算,遍历每一位二进制数,1变0,0变1
class Solution { public int[] countBits(int n) { int[] num=new int[n+1]; for(int i=0;i>1]+(i&1); } return num; }}6.使用最小花费爬楼梯
题目:
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
示例 1:
输入:cost = [10,15,20]输出:15解释:你将从下标为 1 的台阶开始。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15 。
示例 2:
输入:cost = [1,100,1,1,1,100,1,1,100,1]输出:6解释:你将从下标为 0 的台阶开始。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。总花费为 6 。
提示:
- 2
上一篇:怎么运行打开服务器?