ARTS 第40周

ARTS (第40周)

Algorithm 算法

跳台阶

题目

1
2
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

解法

///////////////////////////////////////////////////////
// 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
// https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
/////////////////////////////////////////////////////////////
// 最初写的是这样的写法 dp[i]=( dp[i - 1] + 1) + (dp[i - 2] + 2))
// 想着要么从 dp[i - 1] 跳一步来 或者从 dp[i - 2]跳2步与跳2次1步 但最后发现是错的
// 因为从 dp[i - 2]跳1步的情况就已经包含在了 dp[i - 1]里了
// 然后发现dp[i]=( dp[i - 1] + 1) + (dp[i - 2] + 1))也是错的
// 我列了这样一个数列
// 1: 1
// 2: 11 2
// 3: 111 12 21
// 4: 1111 112 121 211 22
// 5: 11111 1121 1211 2111 221 1112 122 212
// 发现,因为从dp[i - 1]种可能性到dp[i]的时候,
// 都是在dp[i - 1]种可能性的基础上所有的可能性走了1步,并没有出现更多的可能性
// 而dp[i - 2]也是一样的,没有更多可能性,
// 走到dp[i]都是走了2步(走2个1步的情况包含在了dp[i - 1]里了)
// 这里如果我先写个回溯算法 再由回溯进行引申可能会好点
public int JumpFloor_dp(int target) {
    if (target < 3)
        return target;
    int[] dp = new int[target + 1];
    // dp[0]=0;
    dp[1] = 1;
    dp[2] = 2;
    for (int i = 3; i <= target; i++) {
        dp[i] = dp[i - 1] + dp[i - 2];
    }

    return dp[target];
}

//回溯
public int JumpFloor(int target) {
    return JumpFloorHelp(0, target);
}

public int JumpFloorHelp(int idx, int target) {
    int left = target - idx;
    //边界
    if(left<=0){
        return 0;
    }
    if (left < 3)
        return left;
    //可能走1步 也可能2步
    int one = JumpFloorHelp(idx + 1, target);
    int two = JumpFloorHelp(idx + 2, target);
    return one + two;
}

斐波那契数列

题目

1
2
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
////////////////////////////////////////////////
// https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
// 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
////////////////////////////////////////////////
// 动态规划
public int Fibonacci(int n) {
if (n == 0)
return 0;
if (n == 1 || n == 2)
return 1;

// 前两个数
int prev1 = 1;// 前1个数 最初代表第2个数
int temp = 0;//
// 第三项开始
int curr = 2;// 最初代表第3个数
int size = 3;// 斐波那契数列的第几个数 初始3
while (size != n) {
// System.out.println(prev1+":"+curr);
size++;
// 先暂存
temp = curr;
// 计算
curr += prev1;
// 迭代
prev1 = temp;

}
return curr;
}

Review 英文文章

https://vuejs.org/v2/guide/forms.html

vue 框架v-model的双向绑定

Tip 技巧

之前理解的异步指的2个程序同时执行,同步则是单个程序或者线程的顺序执行,但现在发现理解太过初级,可能不太准确,找了这么篇文章。

同步是指:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执行下去。

异步是指:当程序1调用程序2时,程序1径自继续自己的下一个动作,不受程序2的的影响。

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

摘自 https://www.cnblogs.com/rainbow70626/p/8094199.html 作者昵称: rainbow70626

Share 分享

https://www.iteye.com/blog/tomyz0223-770677 硬件同步原语(CAS)理论

https://www.cnblogs.com/rainbow70626/p/8094199.html 同步和异步的概念

偶然看到的别人的读书笔记:

https://blog.csdn.net/mengxiangxingdong/article/details/94910675 程序员2019上半年 回顾
内有读书笔记:
读书笔记(思维导图)及其书籍
1.javascript标准教程(阮一峰)
书籍链接: http://javascript.ruanyifeng.com/
笔记:阮一峰老师特别牛,书籍都可以当api查询,所以就没写脑图

2.java编程的逻辑
书籍链接: https://www.cnblogs.com/swiftma/category/816241.html
笔记:[图片]https://gitee.com/hugo110/xmind-books/tree/master/后端/java

3.影响力
书籍链接: 微信读书可以搜到
笔记:https://blog.csdn.net/mengxiangxingdong/article/details/88727470

4.人性的弱点
书籍链接: 微信读书可以搜到
笔记:https://blog.csdn.net/mengxiangxingdong/article/details/77043423

5.深入理解java虚拟机(周志明)
书籍链接: 微信读书可以搜到
笔记:[图片]https://gitee.com/hugo110/xmind-books

6.图解http
书籍链接: 微信读书可以搜到
笔记:[图片]https://gitee.com/hugo110/xmind-books

7.大型网站技术架构
书籍链接: 微信读书可以搜到
笔记:[图片]https://gitee.com/hugo110/xmind-books
https://blog.csdn.net/mengxiangxingdong/article/category/8293176

8.jQuery源码解析(架构与依赖模块)
书籍链接: https://www.imooc.com/learn/172
笔记:未完成

9.mysql必知必会
书籍链接: 微信读书可以搜到
笔记:https://blog.csdn.net/mengxiangxingdong/article/details/88219151
————————————————
版权声明:本文为CSDN博主「xmind果果」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mengxiangxingdong/article/details/94910675