剑指offer35:数组中的逆序对
1 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 2 思路和方法 利用归并排序的思想,先把数组分隔成子数组,先统计出子数组内部的逆序对的数目,然后再统计出两个相邻子数组之间的逆序对的数目。注意在合并两个已排序的子数组后,要更新数组。O(n*log(n))。 3 C++核心代码 1 class Solution {
python 虚拟环境virtualenv(windows)
需要事先安装 virtualenvwrapper-win 这个包是帮助讲虚拟环境集合在一个位置,方便随时切换。不至于这放一个那放一个找不到。 会把虚拟环境创建在C:\Users\Administrator\Envs\ 里 pip install virtualenvwrapper-win
创建虚拟环境 mkvirtualenv 环境名 (这样创建会使用你本地默认的python版本,并且在环境里提前安装pip wheel setuptools)
删除虚拟环境 rmvirtualenv 环境
通过PEB寻找函数地址
通过PEB的Ldr参数(结构体定义为_PEB_LDR_DATA),遍历当前进程加载的模块信息链表,找到目标模块。 摘自PEB LDR DATA: typedef struct _PEB_LDR_DATA
{
0x00 ULONG Length; /* Size of structure, used by ntdll.dll as structure version ID */
0x04 B
spring AOP注解实现
一、什么是AOP 引用一下维基百科的定义 面向切面的程序设计(Aspect-oriented programming,AOP,又译作面向方面的程序设计、剖面导向程序设计)是计算机科学中的一种程序设计思想,旨在将横切关注点与业务主体进行进一步分离,以提高程序代码的模块化程度。通过在现有代码基础上增加额外的通知(Advice)机制,能够对被声明为“切点(Pointcut)”的代码块进行统一管理与装饰,如“对所有方法名以‘set*’开头的方法添加后台日志”。该思想使得开发人员能够将与代码核心业务逻辑
js 中事件的个人理解
事件 事件组成 1,触发谁的事件 事件源 2,触发是什么事件 click mouseover mouseout 3,事件触发之后,干什么 事件函数 (干什么写在事件函数中) 事件对象 类似于飞机的“黑匣子” 用于保存 一个事件发生的时候,所有的信息 比如:事件发生时鼠标的坐标 如何获取事件对象: 兼容性问题:在不同浏览器上 获取方法不一样 在IE 以及DOM标准:全局的对象(window下) 名字event 在高版本IE 以及 chrome 不支持event来获取事件对象的,另
第四章 Go语言接口和反射
一、接口 定义 接口定义了一个对象的行为规范,制定以规范并不实现,具体的对象需要实现规范的细节 //接口定义
type 接口名 interface { //定义一个接口
Talk()
Eat() int //返回int型
Run()
}
接口的实现 一个对象只要包含接口中的方法,那么就是实现了这个接口,接口类型的变量可以保存具体类型的实例 type Animal interface{
Talk()
Eat()
Struts2表格动态明细向后台传值。
最近培训新人,最后练习使用Struts2框架练习,但是联系中碰到了画面List对象传后台无法传递的问题。网上看了一圈没有找到对应的解决办法。最后自己找到了一种,写下来后面可以再看。 注:方法千千万,有其他能解决的,或者我写的有不对的地方欢迎指正! 上图表格里面的就是我想上传到后台的内容,因为下面的更新按钮,删除按钮想要多条操作,所以最省心的办法就是整表提交(当然也有通过js把选中的对象拼成字符串再传到后台分割,但是太low了。。。) 解决办法: 两个javaBean:ResultBean 和
k-means算法处理聚类标签不足的异常
k-means算法在人群聚类场景中,是一个非常实用的工具。(该算法的原理可以参考K-Means算法的Python实现) 常见调用方式 该算法常规的调用方式如下: # 从sklearn引包
from sklearn import cluster
# 初始化并设定聚类数
k_means = cluster.KMeans(n_clusters=9)
# 指定聚类特征
df_pct = stat_score['feature_1', 'feture_2', 'feature_3']
k_means.f
python学习-59 hashlib模块
hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块 加密功能 import hashlib
obj = hashlib.md5() # 如果在md5里加上自己设置的参数,别的解密软件就不容易解密了,例如:hashlib.md5('asdfg'.encode('utff-8'))
obj.update('hello'.encode('utf-8'))
print(obj.hexdigest()) 运行结果(将hello转换成一
JavaScript数组和数学对象
数组的创建: var ary1 = new Array();
console.log(ary1);//[]
var ary2= new Array(2,3,4,5);
console.log(ary2); //[2,3,4,5]
var ary3= new Array(4); //传一个参数,为数字,代表数组长度
console.log(ary3); //[empty*4]
luogu 1558 色板游戏
题目背景 阿宝上学了,今天老师拿来了一块很长的涂色板。 题目描述 色板长度为L,L是一个正整数,所以我们可以均匀地将它划分成L块1厘米长的小方格。并从左到右标记为1, 2, ... L。 现在色板上只有一个颜色,老师告诉阿宝在色板上只能做两件事: "C A B C" 指在A到 B 号方格中涂上颜色 C。 "P A B" 指老师的提问:A到 B号方格中有几种颜色。 学校的颜料盒中一共有 T 种颜料。为简便起见,我们把他们标记为 1, 2, ... T. 开始时色板上原有的颜色就为1号色。 面对如
[JZOJ4330] 【清华集训模拟】几何题
题目 题目大意 也懒得解释题目大意了…… 正解 正解居然是\(FFT\)? 不要看题目的那个式子这么长,也不要在那个式子上下手。 其实我们会发现,不同的\((x_i-x_j,y_i-y_j,z_i-z_j)\)并不多。 如果我们求出每个三元组的出现次数,后面的就好做了。 那怎么求呢? 祭出我们的大杀器——\(FFT\)。 考虑只有一个维怎么做。设两个多项式分别为\(A\)和\(B\)。 对于\(x_i\),就在\(A\)的\(x_i\)这一位上的系数加一; 对于\(x_j\),就在\(B\)的
[bzoj2746][HEOI2012]旅行问题 _AC自动机_倍增
[HEOI2012]旅行问题 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2746 题解: 这个是讲课时候的题。 讲课的时候都在想怎么后缀自动机.... 当然是能做啦,$SAM$这么强。 实际上是个$AC$自动机,按照题目模拟就行了。 代码: #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1 <<
java 网络编程-多人登录面向对象
TCP:模拟登录:多个客户端,先后等待publicclasstcp{publicstaticvoidmain(String[]args)throwsIOException{System.out.println("服务器启动中...");ServerSocketserver=newServerSocket(8888);booleanflag=true;while(flag){Socketclient
今日推荐
周排行