powershell@文件大小排序@文件夹磁盘占用分析
文章目录
- abstract
- powershell对于列出子目录大小的支持状况
- 按文件大小排序指定目录下所有文件
- 扩展的专用函数介绍
- 统计目录或文件的大小👺
- 对指定目录以友好的格式列出所有文件和子目录的大小
- 函数灵活性说明👺
- 综合用例
- 其他相关软件
- 易用系列
abstract
在powershell中完成以下任的参考方案
- 统计目录或文件的大小,文件或目录占用大小数值支持单位指定,格式友好
- 对指定目录以友好的格式列出所有文件和子目录的大小
powershell对于列出子目录大小的支持状况
列出子目录大小是一个常见的需求,而 PowerShell 的 ls
命令(或 Get-ChildItem
cmdlet)默认没有直接提供这个功能,这可能有几个原因:
- 性能考虑:
计算子目录大小需要递归遍历所有子目录和文件,这对于大型目录结构可能会很耗时。 - 设计哲学:
PowerShell 遵循"做一件事并把它做好"的 Unix 哲学。Get-ChildItem
的主要功能是列出项目,而不是计算大小。 - 灵活性:
PowerShell 提供了构建块(如Get-ChildItem
、Measure-Object
),让用户可以根据需求组合这些命令。 - 兼容性:
保持与 CMD 的dir
命令和 Unix-like 系统的ls
命令的基本行为一致。
幸运的是,powershell的ls命令提供了-Recurse
参数,可以用来递归列出所有子项目。
虽然这不直接计算子目录大小,但为实现这一功能提供了基础。基于此选项,我们可以列出指定目录下所有文件,然后针对他们的length
字段统计或排列满足我们的需要
按文件大小排序指定目录下所有文件
完成这个任务对于powershell来说十分简单
例如,对当前目录执行文件大小排序操作
ls -Path . -Recurse -File |sort Length -Descending|select Name,Length, DirectoryName
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\c_cpp_consoleapps\cpp\archives]
PS> ls -Path . -Recurse -File |sort Length -Descending|select Name,LengthName Length
---- ------
.DS_Store 15364
.DS_Store 6148
.DS_Store 6148
.DS_Store 6148
binary_tree.cpp 5449
18.2.3可变长数组类模板.cpp 4805
longest common word.cpp 4289
虽然这完成了排序任务,并且可以灵活指定过滤的属性,但是Length终究不太直观,不显示单位
扩展的专用函数介绍
针对此类文件大小排列相关任务,编写扩展的函数
统计目录或文件的大小👺
- 以下函数专门为此类任务设计,并且支持指定显示格式,文件大小单位
function Get-Size
{<#.SYNOPSIS计算指定文件或目录的大小。.DESCRIPTION此函数计算指定路径的文件或目录的大小。对于目录,它会递归计算所有子目录和文件的总大小。函数支持以不同的单位(如 B、KB、MB、GB、TB)显示结果。.PARAMETER Path要计算大小的文件或目录的路径。可以是相对路径或绝对路径。.PARAMETER Unit指定结果显示的单位。可选值为 B(字节)、KB、MB、GB、TB。默认为 MB。.EXAMPLEGet-Size -Path "C:\Users\Username\Documents"计算 Documents 文件夹的大小,并以默认单位(MB)显示结果。.EXAMPLEGet-Size -Path "C:\large_file.zip" -Unit GB计算 large_file.zip 文件的大小,并以 GB 为单位显示结果。.EXAMPLE"C:\Users\Username\Downloads", "C:\Program Files" | Get-Size -Unit MB计算多个路径的大小,并以 MB 为单位显示结果。.EXAMPLE指定显示单位为KB ,显示5位小数PS> Get-Size -PrecisionFormatTable -Precision 5 -Unit KBMode BaseName Size Unit---- -------- ---- ----da--- PS 563.93848 KB.EXAMPLE保留3位小数(但是显示位数保持默认的2位),使用管道符`|fl`来查看三位小数PS> Get-Size -Precision 3 -Unit KBMode BaseName Size Unit---- -------- ---- ----da--- PS 564.14 KB.EXAMPLEPS> Get-Size -Precision 3 -Unit KB|flMode : da---BaseName : PSSize : 564.408Unit : KB.EXAMPLE指定显示精度为4为小数(由于这里恰好第3,4位小数为0,所以没有显示出来,指定更多位数,可以显示)PS🌙[BAT:79%][MEM:44.52% (14.12/31.71)GB][0:03:01]# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\scripts\PS]PS> Get-Size -PrecisionFormatTable -Precision 4Mode BaseName Size Unit---- -------- ---- ----da--- PS 0.55 MB指定显示精度为5为小数PS🌙[BAT:79%][MEM:44.55% (14.13/31.71)GB][0:03:05]# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\scripts\PS]PS> Get-Size -PrecisionFormatTable -Precision 5Mode BaseName Size Unit---- -------- ---- ----da--- PS 0.55002 MB.INPUTSSystem.String[]你可以通过管道传入一个或多个字符串路径。.OUTPUTSPSCustomObject返回一个包含路径、大小和单位的自定义对象。#>[CmdletBinding()]param([Parameter( ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)][string[]]$Path = '.',# [switch]$ItemType,[Parameter(Mandatory = $false)][ValidateSet('B', 'KB', 'MB', 'GB', 'TB')][string]$Unit = 'MB',#文件大小精度$Precision = 2,[switch]$PrecisionFormatTable,[switch]$Detail,[switch]$FormatTable)begin{if ($VerbosePreference){$PSBoundParameters | Format-Table }$unitMultiplier = @{'B' = 1'KB' = 1KB'MB' = 1MB'GB' = 1GB'TB' = 1TB}}process{foreach ($item in $Path){if (Test-Path -Path $item){$size = 0# 利用Get-item 判断$Path是文件还是目录,如果是目录,则调用ls -Recurse找到所有文件(包括子目录),然后利用管道符传递给Measure计算该子目录的大小$itemInfo = (Get-Item $item)$baseName = $itemInfo.BaseName$Mode = $itemInfo.Mode# $ItemType = $itemInfo.GetType().Nameif ($itemInfo -is [System.IO.FileInfo]){$ItemType = 'File'}elseif ($itemInfo -is [System.IO.DirectoryInfo]){$ItemType = 'Directory'}if ($itemInfo -is [System.IO.DirectoryInfo]){$size = (Get-ChildItem -Path $item -Recurse -Force | Measure-Object -Property Length -Sum).Sum}else{$size = (Get-Item $item).Length}$sizeInSpecifiedUnit = $size / $unitMultiplier[$Unit]Write-Verbose "`$sizeInSpecifiedUnit: $sizeInSpecifiedUnit"$Size = [math]::Round($sizeInSpecifiedUnit, [int]$Precision)Write-Verbose "`$size: $Size"if ($PrecisionFormatTable){$size = "$size"}$res = [PSCustomObject]@{Mode = $ModeBaseName = $baseNameSize = $Size #默认打印数字的时候只保留小数点后2位Unit = $Unit}$verbo = [pscustomobject]@{Itemtype = $itemTypePath = $item}if ($Detail){# $res | Add-Member -MemberType NoteProperty -Name FullPath -Value (Convert-Path $item)foreach ($p in $verbo.PsObject.Properties){$res | Add-Member -MemberType NoteProperty -Name $p.Name -Value $p.value}}if ($FormatTable){$res = $res | Format-Table #数据表格化显示}return $res}else{Write-Warning "路径不存在: $item"}}}
}
用例:除了函数内部的文档和例子,在举例
PS🌙[BAT:79%][MEM:36.5% (11.58/31.71)GB][21:52:37]
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\c_cpp_consoleapps\cpp\archives]
PS> Get-Size .\12.1.1.1类的构造函数.cppMode BaseName Size Unit
---- -------- ---- ----
-a--- 12.1.1.1类的构造函数 0.00 MBPS🌙[BAT:79%][MEM:37% (11.73/31.71)GB][21:56:57]
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\c_cpp_consoleapps\cpp\archives]
PS> Get-Size .\12.1.1.1类的构造函数.cpp -Unit BMode BaseName Size Unit
---- -------- ---- ----
-a--- 12.1.1.1类的构造函数 946.00 BPS🌙[BAT:79%][MEM:36.93% (11.71/31.71)GB][21:57:05]
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\c_cpp_consoleapps\cpp\archives]
PS> Get-Size .\12.1.1.1类的构造函数.cpp -Unit KBMode BaseName Size Unit
---- -------- ---- ----
-a--- 12.1.1.1类的构造函数 0.92 KB
对指定目录以友好的格式列出所有文件和子目录的大小
用例可以参考函数内部的注释文档.Example
这个函数对于我们想要分析某个文件夹中文件占用很有用
function Get-ItemSizeSorted
{<# .SYNOPSIS对指定目录以文件大小从大到小排序展示其中的子目录和文件列表.DESCRIPTION继承大多数Get-Size函数的参数,比如可以指定文件文件大小的单位,大小数值保留的小数位数等(详情请参考Get-Size函数)。.EXAMPLEPS🌙[BAT:79%][MEM:44.53% (14.12/31.71)GB][0:00:19]# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\scripts\PS]PS> get-ItemSizeSorted -Unit KBMode BaseName Size Unit---- -------- ---- ----da--- Deploy 82.45 KBda--- Basic 78.55 KBd---- Pwsh 49.91 KBd---- TaskSchdPwsh 40.06 KB#>param ($Path = '.',[Parameter(Mandatory = $false)][ValidateSet('B', 'KB', 'MB', 'GB', 'TB')][string]$Unit = 'MB',#文件大小精度$Precision = 3,[switch]$Detail,[switch]$PrecisionFormatTable,[switch]$FormatTable)$res = Get-ChildItem $Path | ForEach-Object {$_ | Get-Size -Unit $Unit -Precision $Precision -Detail:$Detail `-PrecisionFormatTable:$PrecisionFormatTable # -FormatTable:$FormatTable }$sorted = $res | Sort-Object -Property size -Descendingif ($FormatTable){$sorted = $sorted | Format-Table}return $sorted
}
函数灵活性说明👺
函数Get-Size
支持管道符,对于灵活性大有好处,如果Get-Size
在筛选方面不能满足需要,那么可以借助ls
配合其他过滤命令,然后将过滤到的项目传递给Get-Size
来计算,例如
PS [C:\exes]> ls *exe|Get-Size|sort size -DescendingMode BaseName Size Unit
---- -------- ---- ----
-a--- WeChatSetup 270.29 MB
-a--- WetypeSetup 155.75 MB
-a--- windhawk_setup_offline 131.79 MB
-a--- GeForce_Experience_v3.27.0.120 125.82 MB
-a--- WantDiffusionSetup 93.07 MB
-a--- Twinkle.Tray.v1.15.4 84.24 MB
-a--- Miniconda3-py311_24.1.2-0-Windows-x86_64 81.00 MB
-a--- alist 77.83 MB
-a--- typora-setup-x64-1.5.12 77.18 MB
-a--- Whale 77.06 MB
-a--- audiorelay-0.27.5 68.22 MB
-a--- Git-2.44.0-64-bit 62.32 MB
...
综合用例
计算指定目录或文件的大小
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\scripts]{Git:main}
PS> get-size .Mode BaseName Size Unit
---- -------- ---- ----
da--- scripts 55.37 MB
PS🌙[BAT:79%][MEM:37.62% (11.93/31.71)GB][22:08:54]
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\scripts]{Git:main}
PS> get-size .\debug.log -Unit KBMode BaseName Size Unit
---- -------- ---- ----
-a--- debug 0.12 KBPS🌙[BAT:79%][MEM:37.65% (11.94/31.71)GB][22:09:19]
# [cxxu@CXXUCOLORFUL][<W:192.168.1.178>][C:\repos\scripts]{Git:main}
PS> get-size .\debug.log -Unit KB -DetailMode : -a---
BaseName : debug
Size : 0.12
Unit : KB
Itemtype : File
Path : .\debug.log
指定单位为MB来分析文件占用比较实用,甚至可以指定GB来分析,无论是子目录还是文件,都可以被统计大小排列顺序(默认是从大到小排序,如果有需要,可以后续再用一次|Sort
排序,但是不能和-PrecisoinFromatTable
参数混用)
PS> get-itemSizeSorted -Unit MB -Precision 4 -PrecisionFormatTableMode BaseName Size Unit
---- -------- ---- ----
d---- .mypy_cache 52.7167 MB
da--- PS 0.5515 MB
d---- Cpp 0.3968 MB
d---- sample1 0.3202 MB
da--- linuxShellScripts 0.0608 MB
d---- pythonScripts 0.0582 MB
d---- data 0.0559 MB
-a--- PwshModuleByCxxu 0.0282 MB
d---- jsScripts 0.0168 MB
-a--- LICENSE 0.011 MB
d---- antlr 0.0085 MB
d---- .vscode 0.0024 MB
d---- windows 0.002 MB
d---- Config 0.0015 MB
-a--- readme_zh 0.0009 MB
顺序(升序)排列
PS> get-itemSizeSorted -Unit MB |sort sizeMode BaseName Size Unit
---- -------- ---- ----
-a--- readme 0.00 MB
....(节约篇幅)-a--- readme_zh 0.00 MB
d---- windows 0.00 MB
d---- .vscode 0.00 MB
d---- antlr 0.01 MB
-a--- LICENSE 0.01 MB
d---- jsScripts 0.02 MB
-a--- PwshModuleByCxxu 0.03 MB
d---- data 0.06 MB
d---- pythonScripts 0.06 MB
da--- linuxShellScripts 0.06 MB
d---- sample1 0.32 MB
d---- Cpp 0.40 MB
da--- PS 0.55 MB
d---- .mypy_cache 52.72 MB
其他相关软件
-
Onecommander OneCommander - Modern files manager for Windows 11 and Windows 10
- 是一款扩展了windows资源管理器(explorer)的软件,可以启用目录占用大小的功能(这会引起高的cpu占用,灵活性不如单独计算指定目录的供,windows自带的资源管理器虽然默认计算文件夹大小,但是可以右键属性单独查看指定目录占用大小)
-
eza eza-community/eza: A modern alternative to ls (github.com)
- 在windows平台上功能受限
易用系列
- 利用everything排序(高性能),文件索引完毕后,指定目录,选择size排序
- 软件官网https://www.voidtools.com/
相关文章:

powershell@文件大小排序@文件夹磁盘占用分析
文章目录 abstractpowershell对于列出子目录大小的支持状况按文件大小排序指定目录下所有文件 扩展的专用函数介绍统计目录或文件的大小👺对指定目录以友好的格式列出所有文件和子目录的大小函数灵活性说明👺 综合用例其他相关软件易用系列 abstract 在…...

详解c++多态---上
virtual关键字 1.可以修饰原函数,为了完成虚函数的重写,满足多态的条件之一。 class Person { public:virtual void BuyTicket() { cout << "买票-全价" << endl; } };class Student : public Person { public:virtual void Buy…...

emWin5的图片半透明之旅
文章目录 目标过程直接使用png (失败了)通过 BmpCvt.exe 转换一下(成功了)通过bmp转 (半成功吧) 补充工程结构整理 目标 显示半透明效果,类似png那种,能透过去,看到背景。 过程 直接使用png …...

【RabbitMQ 项目】项目概述
项目概述 一.角色划分二.服务器模块概述1.本地模块2.网络模块3.服务器模块 三.模块详细划分1.服务端2.客户端 一.角色划分 该项目的模型是一个跨主机的生产消费模型,有三种角色:生产者,消费者,中间人。对应就要实现三个大模块&…...

【VSCode】VSCode Background 背景插件辅助窗口程序
前排贴上Github项目链接 GitHub窗口项目链接 这是一个基于VSCode上由shalldie上传的background扩展制作的windows窗口程序。 该程序旨在通过窗口程序尽可能的完善该扩展原有的功能。 background - shalldie 的最大优势是我目前仅在其扩展上发现了UseFront的选项,这…...

gdb 前端:kdbg 安装使用
文章目录 1. 前言2. kdbg 安装使用2.1 安装 kdbg2.2 使用 kdbg 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. kdbg 安装使用 2.1 安装 kdbg kdbg 是 gdb 的图形化界面的前端,在 …...

UDP_SOCKET编程实现
文章目录 socket编程接口认识struct sockaddr类 编写一个server服务Client代码查看启动结果代码修正1.获取内核分配给客户端的信息2.修正不匹配ip不能访问的问题 不同机器之间的通信利用xftp将udp_client传给wsl的ubuntu机器进行演示现在模拟在windows下的udp_client代码: 对方…...

【网络】高级IO——阻塞IO和非阻塞IO的实现
目录 一.文件描述符的默认行为——阻塞IO 二.非阻塞IO 2.1.在打开文件或创建套接字时设置非阻塞模式: 2.2.在使用网络I/O接口时请求非阻塞行为: 2.3.fcntl函数 一.文件描述符的默认行为——阻塞IO 在Linux系统中,无论是通过open系统调用…...

ASPICE培训:打造卓越的汽车软件开发能力
随着汽车行业的快速发展和智能化技术的不断演进,汽车软件开发已成为汽车制造过程中不可或缺的一部分。为了确保汽车软件的质量、可靠性和安全性,ASPICE(Automotive SPICE)作为一种国际公认的汽车软件开发过程评估标准,…...

基于Python的人工智能应用案例系列(2):分类
在本篇文章中,我们将探讨分类问题,具体的应用场景是贷款审批预测。通过该案例,我们将学习如何使用Python处理分类问题,训练模型并预测贷款是否会被批准。 案例背景 该数据集包含贷款申请的相关信息,目标是预测贷款是否…...

演示:基于WPF自绘的中国省份、城市、区县矢量地图
一、目的:演示一个基于WPF自绘的中国省份、城市、区县矢量地图 二、效果 国 省 市 三、功能 支持实际经纬度显示 支持平移,缩放等功能 显示中国地图 显示各个省份地图 显示各个省份地图(包含在表格中,包含缩率图) 显…...

同时拥有独显和核显,怎么让应用程序选择使用哪个GPU?
看你现在使用的是核显还是独显 勾选上GPU引擎选项,后面便会标识你所使用的是哪种显卡,如果是独立显卡,就可以免去后续的操作;如果不是,那么请继续接下来的操作。 将你需要使用独显的程序换成gpu1(独显&am…...

C++八股文之面向对象篇
🤖个人主页:晚风相伴-CSDN博客 思维导图链接:面向对象的性质 持续更新中…… 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 …...

点云深度学习系列:Sam2Point——基于提示的点云分割
文章:SAM2POINT:Segment Any 3D as Videos in Zero-shot and Promptable Manners 代码:https://github.com/ZiyuGuo99/SAM2Point Demo:https://huggingface.co/spaces/ZiyuG/SAM2Point 1)摘要 文章介绍了SAM2POINT,这是…...

mysql学习教程,从入门到精通,TOP 和MySQL LIMIT 子句(15)
1、TOP 和MySQL LIMIT 子句内容 在SQL中,不同的数据库系统对于限制查询结果的数量有不同的实现方式。TOP 关键字主要用于 SQL Server 和 Access 数据库中,而 LIMIT 子句则主要用于 MySQL、PostgreSQL(通过 LIMIT/OFFSET 语法)、S…...

备战软考Day02-数据结构与算法
1.基本概念与三要素 1.什么是数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 2.数据元素、数据项 数据元素是数据的基本单位,通常作为一个整体进行…...

COMP 6714-Info Retrieval and Web Search笔记week1
哭了哭了,这周唯一能听懂的就这门 目录 IR(Information Retrieval)是什么?IR的基本假设Unstructured (text) vs. structuredDocuments vs. Database Records比较文本(Comparing Text)IR的范围(Dimensions of IR)IR的任…...

C++在Linux实现多线程和多进程的TCP服务器和客户端通信
多进程版本 服务器 #include <arpa/inet.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/wait.h> #include <signal.h> #include <string&…...

音视频开发常见的开源项目汇总
FFmpeg 地址:https://ffmpeg.org/介绍:FFmpeg 是一个非常强大的开源多媒体框架,它可以用来处理视频和音频文件。它支持多种格式的转换、编码、解码、转码、流处理等。FFmpeg 包括了 libavformat、libavcodec、libavutil、libswscale、libpos…...

Java操控Redis (面经之 使用Redis)
操控Redis的工具 ReactiveRedisTemplate 和 RedisTemplate : RedisTemplate: 它是一个通用的模板类,可以使用任何序列化策略来序列化和反序列化键和值。默认情况下,它使用 JdkSerializationRedisSerializer 序列化值,并使用 Strin…...

【计网】从零开始使用UDP进行socket编程 --- 服务端业务实现
在我们每个人都曾经历过“沮丧”时刻里, 如果我们不能对别人说有益的好话, 那我们最好还是什么也别说。 --- 卡耐基 《人性的弱点》--- 从零开始使用UDP进行socket编程 1 前情提要2 单词翻译2.1 业务需求2.2 设计字典类2.3 服务端与客户端逻辑2.4 运…...

正式发售!《黑神话:悟空》背后的技术力量——UE5与实时云渲染
千呼万唤始出来,《黑神话:悟空》终于在今年8月发售了,相信大家都已经玩起来了! 作为国产游戏的画质巅峰之作,《黑神话:悟空》凭借其令人叹为观止的画面质量和游戏体验,赢得了广泛的好评。这一切…...

qt-creator-10.0.2之后版本的jom.exe编译速度慢下来了
1、Qt的IDE一直在升级,qt-creator的新版本下载地址 https://download.qt.io/official_releases/qtcreator/ 2、本人一直用的是qt-creator-10.0.2版本,官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe https://download.qt…...

2024CSP-J初赛全真模拟卷选择题篇(原创,难度偏简单)
注意,本卷由再临TSC原创,禁止转载! 本卷难度偏简单,若想要通过初赛本卷应拿80分左右 查看答案的方法: if(设备"PC") { 把光标移到答案上面,选中答案,就会显示(); } …...

【Android 13源码分析】WindowContainer窗口层级-4-Layer树
在安卓源码的设计中,将将屏幕分为了37层,不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析,整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…...

C# 开发教程-中级教程
1.C# 多线程/异步 C# 异步编程Task整理(一) C# 异步编程Task整理(二)异常捕捉 C# 异步编程Task(三) async、await C#中创建线程,创建带参数的线程 C# 线程同步之排它锁/Monitor监视器类 C# lock关键词/lock语句块…...

【C++】c++的继承
目录 思维导图大纲: 1.基类和派生类 1.1 定义格式 1.2 继承方式 1.3 基类和派生类的转换 2. 继承中的作用域(隐藏关系) 2.1 考察继承作⽤域相关选择题 3. 派生类的默认成员函数 4. 继承类模板 5. 一个不能被继承的类 编辑 6.继承与友元 编辑 7. 继…...

【ShuQiHere】 进制转换的世界:从十进制到二进制、十六进制的转换技巧
【ShuQiHere】 在计算机科学中,进制转换(Radix Conversion) 是一个基础且非常重要的技能。无论是理解计算机的存储、数据表示,还是在编程中处理不同的进制数据,进制转换都是不可或缺的。本文将详细讲解 十进制&#x…...

《化工管理》
《化工管理》征稿简则 《化工管理》杂志是由中国石油和化学工业联合会主管、中国化工企业管理协会主办,1986年创刊,在国内外公开发行,国内统一连续出版物号:CN 11—3991/F,中国标准连续出版物号:ISSN 1008—…...

LeetCode70:爬楼梯
class Solution { public:int climbStairs(int n) {if(n 1) return 1;if(n 2) return 2;vector<int> dp(n 1, 0);dp[1] 1;dp[2] 2;for(int i 3; i < n 1; i){dp[i] dp[i - 1] dp[i - 2];}return dp[n];} }; 这个题目也就是最简单的动态规划,题目…...