July 28, 2015

Problem statement:

You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

The problem is most popular question in the algorithm, so I do like to spend time to find out all sorts of solution, and get myself comfortable to all kinds of ideas,

and figure out which one is best, and all concerns we can have in the discussion of climbing stairs:

1. Recursion solution vs. DP problem solution (Dynamic Programming solution)

2. Time complexity solution: O(2^n) vs O(n) solution

3. The space O(N) vs O(1), in other words: array of N or 2 variable, and another tmp variable

4. The base case discussion: f(0) = 1 or f(0) =1, math question?

5. Math formula - closed form solution vs DP problem solution

6. Use Memoization DP vs. no memoization DP

7. Programming skills, how to make code easy to follow, more readable, more abstract.

The investment of time on the problem is well done. Go over 16 implementation one by one using C# programming language.

C# code:

 

https://github.com/jianminchen/climbingStairs/blob/master/climbingStairs.cs

其实, 我觉得题目越容易, 越值得投入时间去学习; 看看大家有没有不同的理解, 打开思路; 如果自己没有训练过这道题, 可能会紧张;

即使训练过, 但是, 有的想法, 可能自己从来没有思考过, 一时还不能判断好坏, 想不出来, 但是, 多看网上的博客, 向每一个人取取经. 谦虚, 才能有提高.

我编网站后台, C#程序自己写; 自己训练的题目太少; 这次选择用Leetcode来提高C#编程, 又可以提高算法和数据结构的知识, 网站后台靠

平时训练. 训练的水平, 就是自己编程的水平.

最新文章

  1. AC日记——最大数 洛谷 P1198 [JSOI2008]
  2. getComputedStyle的简单用法
  3. 研二下学期做的第一个项目(主要关于datagridview的一些笔记)
  4. 关于web软件信息安全问题资料的整理(四)
  5. linux上安装php+gd扩展
  6. Shooting Algorithm
  7. Request请求总结
  8. lcd 图片
  9. 来自平时工作中的javascript知识的积累---持续补充中
  10. linux系统环境变量.bash_profile/bashrc文件
  11. POJ 3321 DFS序+线段树
  12. Codeforces Round #353 (Div. 2) D. Tree Construction (二分,stl_set)
  13. 浅谈inline-block
  14. 在InteliJ IDEA中写Dart及配置IDEA - Dart Plugin
  15. 【css3网页布局】flex盒子模型
  16. SQL中partition关键字的使用
  17. 关于《common-net》的ftp上传
  18. robot framework学习二-----元素定位
  19. 将.ipynb文件导入到另外的文件中
  20. mac shortcut

热门文章

  1. JavaScript模块化编程
  2. 手机开启HDR后拍照有什么不同?
  3. Unity依赖注入使用
  4. 解决discuz论坛搬家:“Table ‘common_syscache’ is read only”问题
  5. java环境变量完整版
  6. Ubuntu下APACHE HTTPS安装和配置
  7. VC编程命名方法
  8. SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
  9. Servlet 笔记-异常处理
  10. Java中的Calendar方法
  11. Frame
  12. .net core+Spring Cloud学习之路 一
  13. HTML5 Audio(音频)
  14. Robot Framework 内置变量
  15. Mom and Dad
  16. C++之友元函数和友元类
  17. MT【175】刚刚凑巧
  18. mac 无法验证副本
  19. Android无线调试_adbWireless
  20. Interval GCD