ARTS 第10周 - 0710

  • Algorithm主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
  • Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
  • Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
  • Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章

打卡地址

 

Algorithm 算法

118.杨辉三角

ARTS 第10周 - 0710_第1张图片

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]
class Solution {
    public List> generate(int numRows) {
        List> triangle = new ArrayList>();
        if (numRows == 0) {
            return triangle;
        }
        triangle.add(new ArrayList<>(1));
        triangle.get(0).add(1);
        
        for (int i = 1; i < numRows; i++) {
            List childList = new ArrayList<>(numRows - 1);
            triangle.add(childList);
            childList.add(1);
            
            for (int j = 1; j <= i - 1 && i >= 2; j++) {
                List previous = triangle.get(i - 1);
                childList.add(previous.get(j-1) + previous.get(j));
            }
            childList.add(1);
        }
        return triangle;
    }
}

119. 杨辉三角 II

给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 行。

输入: 3
输出: [1,3,3,1]
class Solution {
    public List getRow(int rowIndex) {
        rowIndex++;
        List triangle = new ArrayList<>(rowIndex);
        if (rowIndex == 0) {
            return triangle;
        }
        triangle.add(1);
        for (int i = 1; i < rowIndex; i++) {
            int middle = 1;
            for (int j = 1; j < i && i > 1; j++) {
                int middle1 = triangle.get(j);
                triangle.set(j, middle + triangle.get(j));
                middle = middle1;
            }
            triangle.add(1);
        }
        return triangle;
    }
}

杨辉三角是一道在JAVA基础班中都要学习的基础题目,其实和99乘法表之类的有异曲同工之处。

 

杨辉三角2,是返回最后一个list

在一个list上取值替换值进行计算,需要通过一个中间值保存被替换的值,因为该值还需要参加下一个数的运算。

 

 

Review 回顾

暂无

 

Tip 知识点

 

vue的filters中传递多个参数

传1个参数

//html
{{aa | filterAa}}

//js
filters:{
  filterAa(aa){
    // 这额aa就是过滤器传入的参数
  }
}

传2个参数

//html
{{aa | filterAa(bb)}}

//js
filters:{
  filterAa(aa,bb){
    // 这额aa就是过滤器传入的第一个参数
    // 这额bb就是过滤器传入的第二个参数
  }
}

传3个参数

//html
{{aa | filterAa(bb, cc)}}

//js
filters:{
  filterAa(aa,bb,cc){
    // 这额aa就是过滤器传入的第一个参数
    // 这额bb就是过滤器传入的第二个参数
    // 这额cc就是过滤器传入的第三个参数
  }
}

 

 

Share分享

 

我们平时在项目中使用MySQL视图,那么使用视图有什么好处呢?

1.安全性:虚拟表是基于底层数据表的,我们在使用视图时,一般不会轻易通过视图对底层数据进行修改,即使是使用单表的视图,也会受到限制,比如计算字段,类型转换等是无法通过视图来对底层数据进行修改的,这也在一定程度上保证了数据表的数据安全性。同时,我们还可以针对不同用户开放不同的数据查询权限,比如人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。

 

2.简单清晰:视图是对SQL查询的封装,它可以将原本复杂的SQL查询简化,在编写好查询之后,我们就可以直接重用它而不必要知道基本的查询细节。同时我们还可以在视图之上再嵌套视图。这样就好比我们在进行模块化编程一样,不仅结构清晰,还提升了代码的复用率

 

 

来自:

12丨视图在SQL中的作用是什么,它是怎样工作的?

 

 

 

 

 

你可能感兴趣的:(java,ARTS)