ARTS打卡第3周

A:Rotate Image     Medium

You are given an n x n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Note:

You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOTallocate another 2D matrix and do the rotation.

解析:给定一个n*n的二阶数组,将数组进行90度翻转,只能通过当前数组进行翻转,不能赋值给其他数组进行翻转

思路:一个n*n的二阶数组,可以看做是多个正方形,一层嵌套着一层,旋转90需要把每一层的正方形都翻转90度,一个正方形上的点要进行翻转,需要同时将四点进行位置的互换,在数组中的位置分别是

第i层   第j点是对应matrix[i][j],第i行的第j列为第一个数,第二个数matrix[j][n-1-i],第j行第n-1-i列,为第一个数翻转90度之后的位置,第三个数matrix[n-1-i][n-1-j],第n-1-i行的n-1-j列,为第二个数翻转90度的位置,第四个数matrix[n-1-j][i],第n-1-j行的第i列,对应第三个数翻转90的位置,第一个数为第四个数翻转90度的位,通过这个四个数的位置变化可以将一个正方形上的所有点都旋转90度。

方案:https://leetcode.com/submissions/detail/220639976/

R&T:https://www.programcreek.com/2013/09/top-10-methods-for-java-arrays/,关于数组的一些使用:

如数组的打印:Arrays.toString(数组);

数组转换成ArrayList:new ArrayList<String>(Arrays.asList(字符串数组));

数组的合并:ArrayUtils.addAll(intArray, intArray2);

将数组的元素以指定的字符串连接成一个字符串:StringUtils.join(new String[] { "a", "b", "c" }, ", ");//org.apache.commons.lang.StringUtils

ArrayList转换成数组:ArrayList.toArray(stringArr);

将数组倒转:ArrayUtils.reverse(intArray);

获取删除数组中指定位置的元素之后的数组:

int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array  不改变原有数组

S:https://www.cnblogs.com/behindman/p/8873191.html?from=timeline,使用漫画的风格来介绍区块链,生动形象,

1、去中心化

  这是区块链颠覆性特点,不存在任何中心机构和中心服务器,所有交易都发生在每个人电脑或手机上安装的客户端应用程序中。

  实现点对点直接交互,既节约资源,使交易自主化、简易化,又排除被中心化代理控制的风险。

2、开放性

  区块链可以理解为一种公共记账的技术方案,系统是完全开放透明的,账簿对所有人公开,实现数据共享,任何人都可以查账。

3、不可撤销、不可篡改和加密安全性

  区块链采取单向哈希算法,每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性、不可撤销导致任何试图入侵篡改区块链内数据信息的行为易被追溯,导致被其他节点的排斥,造假成本极高,从而可以限制相关不法行为。

猜你喜欢

转载自www.cnblogs.com/wujunjie-Blog/p/10816880.html