写点什么

ARTS(2020-06-01/2020-06-07)

用户头像
天行者
关注
发布于: 2020 年 06 月 07 日

Algorithm


package org.lemon.leetcode.week2;
import java.util.stream.Stream;
/** * https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ * <p> * 顺时针打印矩阵 */public class Solution0029 {
/** * 右下左上的顺序遍历 right、bottom、left、top * +++++++top * left right * ++++++bottom * * @param matrix * @return */ public int[] spiralOrder(int[][] matrix) {
if (matrix.length == 0) { return new int[0]; }
int left = 0, right = matrix[0].length - 1, top = 0, bottom = matrix.length - 1, index = 0; int[] res = new int[(right + 1) * (bottom + 1)]; while (true) {
//left -> right for (int i = left; i <= right; i++) { res[index++] = matrix[top][i]; } if (++top > bottom) { break; }
//top -> bottom for (int i = top; i <= bottom; i++) { res[index++] = matrix[i][right]; } if (--right < left) { break; }
// right -> left for (int i = right; i >= left; i--) { res[index++] = matrix[bottom][i]; } if (--bottom < top) { break; } // bottom -> top for (int i = bottom; i >= top; i--) { res[index++] = matrix[i][left]; } if (++left > right) { break; } } return res; }
public static void main(String[] args) { int[][] temp = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; Solution0029 solution0029 = new Solution0029(); int[] res = solution0029.spiralOrder(temp); for (int i : res) { System.out.println(i); } }}
复制代码

Review

https://en.wikipedia.org/wiki/Inversion_of_control

面向对象编程实现 Ioc 的几种实现方式

1、服务定位模式

2、依赖注入

构造器注入

方法注入

setter 注入

接口注入

3、使用上下文查找

4、模板方法设计模式

5、策略模式

Tips

本周依旧是结合官方文档去深入理解 springframework 的核心代码,英语不行,结合有道一段段的去体会作者的思想;循环依赖通过三级缓存的实现方式,springbean 的生命周期以及后置处理器,依赖注入和依赖查找以及依赖来源,springaop 的拦截器链以及代理实现原理,springmvc 父子容器概念以及和 springboot 的区别;


Share

https://time.geekbang.org/column/article/68633

sql 语句执行流程(mysql)


用户头像

天行者

关注

还未添加个人签名 2018.06.04 加入

还未添加个人简介

评论

发布
暂无评论
ARTS(2020-06-01/2020-06-07)