- Algorithm。主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
- Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
- Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
- Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章
Algorithm 算法
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
示例:
输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> triangle = new ArrayList<List<Integer>>();
if (numRows == 0) {
return triangle;
}
triangle.add(new ArrayList<>(1));
triangle.get(0).add(1);
for (int i = 1; i < numRows; i++) {
List<Integer> childList = new ArrayList<>(numRows - 1);
triangle.add(childList);
childList.add(1);
for (int j = 1; j <= i - 1 && i >= 2; j++) {
List<Integer> previous = triangle.get(i - 1);
childList.add(previous.get(j-1) + previous.get(j));
}
childList.add(1);
}
return triangle;
}
}
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
输入: 3 输出: [1,3,3,1]
class Solution {
public List<Integer> getRow(int rowIndex) {
rowIndex++;
List<Integer> 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查询简化,在编写好查询之后,我们就可以直接重用它而不必要知道基本的查询细节。同时我们还可以在视图之上再嵌套视图。这样就好比我们在进行模块化编程一样,不仅结构清晰,还提升了代码的复用率。
来自: