Leetcode 165.比较号

题目:165.比较版本号

初始思路

休息日,随便写两题
用点分隔字符串,然后从左到右各位比较。

代码

  1. var compareVersion = function (version1, version2) {
  2. let arr1 = version1.split('.')
  3. let arr2 = version2.split('.')
  4. // 从左到右开始比较
  5. for (let i = 0; i < arr1.length || i < arr2.length; i++) {
  6. let x = 0, y = 0
  7. if (i < arr1.length) {
  8. x = parseInt(arr1[i])
  9. }
  10. if (i < arr2.length) {
  11. y = parseInt(arr2[i])
  12. }
  13. if (x > y) return 1
  14. else if (x < y) return -1
  15. }
  16. return 0
  17. }

感想

  1. 一开始想的是把位补足到相等,然后每位比较,后来发现把字符串转换成整数直接省去0了。

Leetcode 70.爬楼梯

题目:70.爬楼梯

初始思路

之前原来做过一次,看了一下应该是动态规划DP问题

代码

  1. var climbStairs = function (n) {
  2. let arr = new Array(n + 1)
  3. arr[0] = 1
  4. arr[1] = 1
  5. for (let i = 2; i < arr.length; i++){
  6. arr[i] = arr[i - 1] + arr[i - 2]
  7. }
  8. return arr[n]
  9. };

感想

  1. 确定递归公式:F(n) = F(n-1) + F(n-2)
  2. 确定初值:F(0) = 1,F(1) = 1
  3. 本质是斐波那契数列。