last

算法题 18 像素翻转 牛客网 CC150

匿名 (未验证) 提交于 2019-12-03 00:41:02
算法题 18 像素翻转 牛客网 CC150_P114 题目描述 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。 测试样例: [[1,2,3],[4,5,6],[7,8,9]],3 返回:[[7,4,1],[8,5,2],[9,6,3]] 解题代码: # -*- coding:utf-8 -*- class Transform: def transformImage(self, mat, n): # write code here # layer表示从外围到里面共有多少层 # 总共有layer=0,1,2,...,(n+1)//2层 for layer in range(0,(n+1)//2+1 ): first = layer last =n-layer-1 for i in range(first,last): offset =i- first # 存储上边 top= mat[first][i] # 从左到上 mat[first][i]=mat[last- offset][first] # 从下到左 mat[last-offset][first]=mat[last]

【算法】―― LRU算法

匿名 (未验证) 提交于 2019-12-03 00:39:02
LRU原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 实现1 命中时需要遍历链表,找到命中的数据块索引,然后需要将数据移到头部。 import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.Map; /** * 类说明:利用LinkedHashMap实现简单的缓存, 必须实现removeEldestEntry方法,具体参见JDK文档 * * @author dennis * * @param <K> * @param <V> */ public class LRULinkedHashMap<K, V> extends LinkedHashMap<K, V> { private final int maxCapacity; private static final float DEFAULT_LOAD_FACTOR = 0.75f

Oracle的LAST_DAY函数

匿名 (未验证) 提交于 2019-12-03 00:39:02
last_day(time) :返回指定日期所在月份的最后一天; 查询当前月份的最后一天: select last_day(sysdate) from dual; 查询某天所在月份的最后一天: select last_day(to_date( '1992-10-09' , 'yyyy-mm-dd' )) from dual; 如: 查询每一个月最后一天过生日的同学: select * from stu where last_day(birthday) = birthday; LAST_DAY 函数返回指定日期对应月份的最后一天。 获取当前日期的最后一天 SQL> SELECT last_day(SYSDATE) FROM dual; 运行结果: LAST_DAY(SYSDATE) ----------------- 2016/12/31 15:39: 获取当前日期和当前日期所在月的最后一天 SQL> SELECT SYSDATE, LAST_DAY(SYSDATE) "Last" , LAST_DAY(SYSDATE) - SYSDATE "Days Left" FROM DUAL; 运行结果: SYSDATE Last Days Left - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2016/12

面向对象练习题

匿名 (未验证) 提交于 2019-12-03 00:34:01
题目与解答 1-10 #1.面向过程编程与面向对象编程的区别与应用场景? # 面向过程编程可扩展性较弱,适合写部署脚本,算法编写 # 面向对象编程可扩展性较强,把事物分解为不同对象,适合编写复杂程序开发 #2. 类和对象在内存中是如何保存的。 # 类和对象的属性在内存中是通过dict形式保存的,python创建对象时,会在内存中开辟一块空间 #3. 什么是绑定到对象的方法、绑定到类的方法、解除绑定的函数、如何定义,如何调用,给谁用?有什么特性 # obj.func 绑定到对象的方法,把obj自动传给self # @classmethod绑定到类的方法,由类来调用把类名自动传给cls # @staticmethod非绑定方法,不绑定类与对象,类与对象都可以调用。按正常形式传参 # 4.使用实例进行 获取、设置、删除 数据, 分别会触发类的什么私有方法 class A(object): def __setitem__(self, key, value): print(‘setitem‘) self.__dict__[key] = value def __getitem__(self, item): print(‘getitem‘) return self.__dict__.get(item) def __delitem__(self, key): print(‘delitem‘)

子查询经典案例

匿名 (未验证) 提交于 2019-12-03 00:30:01
# 1. 查询工资最低的员工信息: last_name, salary #①查询最低的工资 SELECT MIN(salary) FROM employees #②查询last_name,salary,要求salary=① SELECT last_name,salary FROM employees WHERE salary=( SELECT MIN(salary) FROM employees ); # 2. 查询平均工资最低的部门信息 #方式一: #①各部门的平均工资 SELECT AVG(salary),department_id FROM employees GROUP BY department_id #②查询①结果上的最低平均工资 SELECT MIN(ag) FROM ( SELECT AVG(salary) ag,department_id FROM employees GROUP BY department_id ) ag_dep #③查询哪个部门的平均工资=② SELECT AVG(salary),department_id FROM employees GROUP BY department_id HAVING AVG(salary)=( SELECT MIN(ag) FROM ( SELECT AVG(salary) ag,department_id

[HNOI2015]接水果(整体二分)

匿名 (未验证) 提交于 2019-12-03 00:26:01
其实我真的不想写这道题,然而迫于有一个技巧,不得不写一写(主要是为了把技巧放进博客) 保证一个月内不写代码超过100行的。 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果。 由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更 加难的版本。首先有一个地图,是一棵由 n n 个顶点、 n 1 n 1 条边组成的树(例如图 1 给出的树包含 8 个顶点、7 条边)。这颗树上有 P P 个盘子,每个盘子实际上是一条 路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值。第 i i 个 盘子就是顶点 a i a i 到顶点 b i b i 的路径(由于是树,所以从 a i a i 到 b i b i 的路径是唯一的),权值为 c i c i 。接下来依次会有 Q Q 个水果掉下来,每个水果本质上也是一条路径,第 i i 个水果是从顶点 u i u i 到顶点 v i v i 的路径。幽香每次需要选择一个盘子去接当前的水果:一个盘子能接住一个水果,当且仅当盘子的路径是水果的路径的子路径(例如图1中从 3到7 的路径是从1到8的路径的子路径)。这里规定:从 a a 到b的路径与从 b b 到 a a 的路径是同一条路径。当然为了提高难度,对于第 i i 个水果

LinkedList 的实现原理浅析

匿名 (未验证) 提交于 2019-12-03 00:26:01
转载自 LinkedList内部结构 查看LinkedList的源码,发现其继承自AbstractSequentialList,实现了List,Deque,Cloneable以及Serializable接口,如: 也就意味着: 从上述代码可以看出,LinkedList中有size,first以及last全局变量,其作用分别是: 其中,Node是内部类,内容如下: 从上述代码可以看出, 一个节点除了包含元素内容之外,同时包含前一个节点和后一个节点的引用~ 各个节点通过指定前一个节点和后一个节点,最终形成了一个链表~ 代码示例: 输出结果: debug查看LinkedList的结构如下: 形成了一个链表 方法 add 的实现 源代码 add方法会调用linkLast方法,会在链表尾端添加节点~ linkLast方法步骤 获取原来的last节点,然后创建一个新的节点,其prev为原来的last节点,其next节点为null 将last只想新的节点 如果原来的last节点为null,其实就是还没有元素,那么新的节点同样也是first节点;如果不为null,则原来的last节点的next就是新的节点 因为有新元素加入,size加1,且修改次数加1(modCount++) 方法 addAll 的实现 源代码 方法addAll(int index, Collection<? extends E>

6-1 顺序表操作集(20 分)

匿名 (未验证) 提交于 2019-12-03 00:21:02
本题要求实现顺序表的操作集。 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中 List 结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */ }; 各个操作函数的定义为: List MakeEmpty() :创建并返回一个空的线性表; Position Find( List L, ElementType X ) :返回线性表中X的位置。若找不到则返回ERROR; bool Insert( List L, ElementType X, Position P ) :将X插入在位置P并返回true。若空间已满,则打印“FULL”并返回false;如果参数P指向非法位置,则打印“ILLEGAL POSITION”并返回false; bool Delete( List L, Position P )

ES学习之初步认识

匿名 (未验证) 提交于 2019-12-03 00:19:01
本文主要内容: 1、ES的特点 2、索引文档、检索文档、轻量级查询、表达式查询、结构化搜索、全文检索 短语检索、高亮搜索、分析聚合 3、ES分布式特性 ES和关系型数据库差别: 在应用程序中对象很少只是一个简单的键和值的列表。通常,它们拥有更复杂的数据结构,可能包括日期、地理信息、其他对象或者数组等。 ES特征: Elasticsearch 是 面向文档 的,意味着它存储整个对象或 文档 。Elasticsearch 不仅存储文档,而且 Elasticsearch 使用 JavaScript Object Notation 或者 JSON 作为文档的序列化格式。JSON 序列化被大多数编程语言所支持,并且已经成为 NoSQL 领域的标准格式。 它简单、简洁、易于阅读。 ============================================================================= 索引(名词): 一个 索引 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indices 或 indexes 。 索引(动词): 索引一个文档 就是存储一个文档到一个 索引 (名词)中以便它可以被检索和查询到。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时新文档会替换旧文档情况之外。

dvwa系列-sql注入

匿名 (未验证) 提交于 2019-12-03 00:18:01
本篇博文就不详细讲解sql注入的成因了,有兴趣的就去看看我sqlilabs的博文吧,我后面会慢慢完成sqlilabs的博文 low 我们先来判断注入点吧,用最常规的单引号试一试,报错了,初步判断应该是字符型的单引号注入。 下面就推断一下后台执行的sql语句,因为这是一个根据输入的id来查找信息的地方嘛,后台sql大概是: select id,firstname,surname from 表名 where id= '用户输入' firstname,surname字段是我猜的,但是根据页面回显我们可以看到: 页面还是有三处回显的,现在我们需要来判断一下字段数,这样才方便以后利用union语句进行攻击,判断字段数我们一般利用order by语句: ' order by 2 #(不报错) ' order by 3 #(报错) 由此可见字段数是2,那么我们再构造攻击语句: ' union select version(), database ()# 根据这个回显我们也知道id不是从数据库中查询的道德,应该是直接将我们的输入放到了页面上。所以,这部就是一个xss漏洞吗* _ * medium 看到这个情景下的这个东西,第一反应,抓包,改包。还有这是一道数字型注入 图片中有攻击语句 high 我总觉得这一题与第一题没什么差异,直接单引号就注入了,看看源代码吧: high等级: <?php if