前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【LeetCode之C#解法】 移动零、爬楼梯

【LeetCode之C#解法】 移动零、爬楼梯

作者头像
李明成
发布于 2020-09-01 07:04:09
发布于 2020-09-01 07:04:09
40100
代码可运行
举报
文章被收录于专栏:dotNET知音dotNET知音
运行总次数:0
代码可运行

题目官网链接 https://leetcode-cn.com/problems/move-zeroes/

283. 移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]

输出: [1,3,12,0,0]

说明:

必须在原数组上操作,不能拷贝额外的数组。

尽量减少操作次数。

题解:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void MoveZeroes(int[] nums)
    {
       // 解法1:处理不为0的,再处理为0的
        if (nums == null || nums.Length == 0)
            return;
        int index = 0;
        for (int i = 0; i < nums.Length; i++)
        {
            if (nums[i] != 0)
                nums[index++] = nums[i];
        }
        while (index < nums.Length)
        {
            nums[index++] = 0;
        }

        // 解法2:遇到不为0的 互换位置
        int j = 0;
        for (int i = 0; i < nums.Length; i++)
        {
            if (nums[i] != 0)
            {
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
                j++;
            }
        }
    }

题目官网链接 https://leetcode-cn.com/problems/climbing-stairs/

70. 爬楼梯

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

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

注意:给定 n 是一个正整数。

示例 1:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入: 2

输出: 2

解释: 有两种方法可以爬到楼顶。

1.  1+ 12.  2
示例 2:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入: 3
输出: 3

解释: 有三种方法可以爬到楼顶。

1.  1+ 1+ 12.  1+ 23.  2+ 1
题解:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  public int ClimbStairs(int n)
    {
        // // 解法1:递归(记忆化搜索)
        // int[] memo = new int[n + 1];
        // return helper(n, memo);

        // // 解法2:动态规划
        // if (n == 1)
        //     return 1;
        // int[] dp = new int[n + 1];
        // dp[1] = 1;
        // dp[2] = 2;
        // for (int i = 3; i <= n; i++)
        //     dp[i] = dp[i - 1] + dp[i - 2];
        // return dp[n];

        // 解法3:斐波那契数
        if (n == 1)
            return 1;
        int first = 1;
        int second = 2;
        for (int i = 3; i <= n; i++)
        {
            int third = first + second;
            first = second;
            second = third;
        }
        return second;


    }
    public int helper(int n, int[] memo)
    {
        if (n <= 2)
            return n;
        if (memo[n] != 0)
            return memo[n];
        memo[n] = helper(n - 1, memo) + helper(n - 2, memo);
        return memo[n];
    }

源码地址:https://github.com/amusement1234/LeetCode_CSharp

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 dotNET知音 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
70 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
木瓜煲鸡脚
2021/01/18
7290
70 爬楼梯
LeetCode 75 —— 70. 爬楼梯
示例 2: 输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。
Regan Yue
2023/07/10
2420
LeetCode 75 —— 70. 爬楼梯
打卡群2刷题总结1014——爬楼梯
https://leetcode-cn.com/problems/climbing-stairs/
木又AI帮
2020/10/30
4320
Array相关LeetCode题目笔记
Array相关LeetCode题目笔记 11. 盛最多水的容器 题目描述: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。
晓果冻
2022/09/08
1640
画解算法:70. 爬楼梯
https://leetcode-cn.com/problems/climbing-stairs/
灵魂画师牧码
2019/06/27
6480
画解算法:70. 爬楼梯
算法-数组-爬楼梯
链接: https://leetcode.cn/problems/climbing-stairs/
用户3578099
2022/06/10
3410
​LeetCode刷题实战70:爬楼梯
https://leetcode-cn.com/problems/climbing-stairs/
程序员小猿
2021/01/20
2310
​LeetCode刷题实战70:爬楼梯
【leetcode刷题】20T34-爬楼梯
https://leetcode-cn.com/problems/climbing-stairs/
木又AI帮
2020/03/26
3660
【leetcode刷题】T159-爬楼梯
https://leetcode-cn.com/problems/climbing-stairs/
木又AI帮
2019/09/04
3590
LeetCode,Go实现爬楼梯算法
LeetCode题目源地址:https://leetcode-cn.com/problems/climbing-stairs/
微客鸟窝
2021/08/18
3940
LeetCode,Go实现爬楼梯算法
☆打卡算法☆LeetCode 70、爬楼梯 算法解析
“假设你在爬楼梯,需要n阶到达楼顶,每次可以怕1到2阶,有多少种方法爬到楼顶呢。”
恬静的小魔龙
2022/08/07
2360
☆打卡算法☆LeetCode 70、爬楼梯  算法解析
LeetCode算法题 顶
第1题https://leetcode-cn.com/problems/two-sum/
算法之名
2020/03/19
3070
LeetCode 70. 爬楼梯
文章目录 题目 推导归纳-斐波那契 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 4. 1 阶 + 1 阶 + 1 阶 5. 1 阶 + 2 阶 6. 2 阶 + 1 阶 来源:力扣(LeetCode) 链
诡途
2022/05/09
1920
LeetCode | 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
yiyun
2023/03/09
2620
LeetCode | 爬楼梯
LeetCode 70. 爬楼梯(动态规划)
题目链接:https://leetcode-cn.com/problems/climbing-stairs/
Michael阿明
2021/02/20
3000
LeetCode 70. 爬楼梯(动态规划)
LeetCode | 数据结构与算法 | 3月 合集
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
yiyun
2023/05/18
1830
LeetCode | 数据结构与算法 | 3月 合集
【Day13】LeetCode力扣刷题[面试题 17.19. 消失的两个数字][70.爬楼梯][746. 使用最小花费爬楼梯]
解题思路: 利用异或运算符解答: 0 ^ a = a; 当一个数重复异或会抵消: a ^ b ^ a = b; 那么我们将1-N个数异或,再将nums[]中的数异或,就得到了消失的两个数的异或值。 之后将出现的数分为 二进制表示的第 1 位为 0 的数,和 二进制表示的第 1位为 1 的数。 将他们异或,消除重复,就分别得到了两个消失的数。
.29.
2022/11/15
3150
【Day13】LeetCode力扣刷题[面试题 17.19. 消失的两个数字][70.爬楼梯][746. 使用最小花费爬楼梯]
LeetCode-70-爬楼梯
当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=2
benym
2022/07/14
1780
LeetCode - #70 爬楼梯(Top 100)
我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
Swift社区
2022/12/10
1970
LeetCode - #70 爬楼梯(Top 100)
算法刷题笔记01:Array
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
Hsinyan
2022/08/30
3940
算法刷题笔记01:Array
相关推荐
70 爬楼梯
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验