- 博客(42)
- 收藏
- 关注
原创 八皇后问题
设计一种算法,打印 N 皇后在 N × N 棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。注意:本题相对原题做了扩展示例:输入:4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释: 4 皇后问题存在如下两个不同的解法。[[".Q…", // 解法 1“…Q”,“Q…”,“…Q.”],["…Q.", // 解法 2“Q…”,“…Q”,
2020-07-04 16:49:57
206
原创 有重复字符串的排列组合
有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。示例1:输入:S = “qqe”输出:[“eqq”,“qeq”,“qqe”]示例2:输入:S = “ab”输出:[“ab”, “ba”]提示:字符都是英文字母。字符串长度在[1, 9]之间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation-ii-lcci著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。利用回溯+剪枝算法来求
2020-06-26 00:38:34
764
原创 无重复字符串的排列组合
无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。示例1:输入:S = “qwe”输出:[“qwe”, “qew”, “wqe”, “weq”, “ewq”, “eqw”]示例2:输入:S = “ab”输出:[“ab”, “ba”]提示:字符都是英文字母。字符串长度在[1, 9]之间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation-i-lcci著作权归领扣网络所有。商
2020-06-25 16:02:09
949
原创 leetcode 08.02. 迷路的机器人
1、题目设想有个机器人坐在一个网格的左上角,网格 r 行 c 列。机器人只能向下或向右移动,但不能走到一些被禁止的网格(有障碍物)。设计一种算法,寻找机器人从左上角移动到右下角的路径。网格中的障碍物和空位置分别用 1 和 0 来表示。返回一条可行的路径,路径由经过的网格的行号和列号组成。左上角为 0 行 0 列。如果没有可行的路径,返回空数组。示例 1:输入:[[0,0,0],[0,1,0],[0,0,0]]输出: [[0,0],[0,1],[0,2],[1,2],[2,2]]
2020-05-31 22:31:28
373
原创 LeetCode 08.04 幂集
1、题目幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-set-lcci2、解题思路[1, 2, 3] 有三位, 用二进制表示...
2020-05-20 23:20:12
290
原创 返回倒数第 k 个节点
1、题目实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k 保证是有效的。2、解题思路先让第一个指针走k步即可,然后当前指针从头开始走,当第一个指针走到尾部时说明是倒数第k个节点。/** * Definition for singly-linked lis...
2020-05-05 12:27:03
235
原创 LeetCode 面试题 01.05. 一次编辑
LeetCode 面试题 01.05. 一次编辑题目如下:字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入:first = “pale”second = “ple”输出: True示例 2:输入:first = “pales”second = “pal”输出: Fals...
2020-04-27 22:16:08
262
原创 Redis的常用类型与应用
好久没更新博客了,时光匆匆,最近在整理一些用到的一些技术,想要更深入的去了解这些技术的原理以及应用。一、redis的数据类型 常用的数据类型有5个大家都知道:string、list、set、hash、zset,在了解这些数据类型之前,会先要了解一下数据结构、全局命令和内部编码、单线程命令处理机制等...
2019-07-29 17:02:37
116
原创 RocketMQ的安装使用以及踩过的坑
好久没写博客了,由于最近刚工作需要用到RocketMQ,所以自己也简单搭建了一下RocketMQ,本文为最简单的搭建方法,只有一个namesrv和一个broker,本文只提供搭建方法、demo和踩过的坑,并不解释RocketMQ的原理等,至于原理,请同学们自己度娘或者点本文下面的连接。1.所需软件: Cent OS alibaba-rocketmq-3.2.6.tar.gz,在进行安装前...
2018-02-12 17:49:43
7047
3
原创 使用Java随机划分数据集为训练集和测试集
在做机器学习,推荐系统等等实验的过程中,我们难免会自己来手动划分数据集,一般都是用一些python开源库来划分,今天我们使用Java自己写代码来随机划分数据集。下面为代码:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.Fil
2017-08-30 12:06:13
4104
4
原创 利用SVD矩阵分解进行k次交叉实验和Top—N推荐
如果上一节没看的,请先看上一节Surprise项目的使用。本文利用开源GitHub项目Surprise。 上一节说到具体的安装和一些方法的属性,本节将以SVD为例具体的代码demo的实现。 先说下如何利用Surprise加载本地数据集进行k次交叉实验,如果看下API,其实非常简单,体现了Surprise的强大,下面为代码: # -*- coding: utf-8 -*-"
2017-08-08 16:41:41
2111
5
原创 GitHub开源推荐系统项目Surprise的安装和使用
最近在GitHub上发现了一个很好的开源推荐系统,Star700多,包含了常用的矩阵分解算法,包括SVD,SVD++,NMF等等,GitHub地址:https://github.com/NicolasHug/Surprise,由于安装和使用过程中有许多坑,特此记录下来: Surprise安装官方文档中显示安装环境为Python2.7或者3.5,我的环境为3.5,其他没试过。
2017-08-08 14:34:46
13952
原创 Python计算地图上两个点的距离
"""Created on Thu Jun 1 14:41:06 2017@author: Jipon"""from math import *# input Lat_A 纬度A# input Lng_A 经度A# input Lat_B 纬度B# input Lng_B 经度B# output distance 距离(km)"""基于googleMap中的算法得到两
2017-06-01 14:53:11
3314
原创 倒排索引的java实现
假设有3篇文章,file1, file2, file3,文件内容如下: 文件内容代码 file1 (单词1,单词2,单词3,单词4....) file2 (单词a,单词b,单词c,单词d....) file3 (单词1,单词a,单词3,单词d....) 那么建立的倒排索引就是这个样子:
2017-05-02 19:28:49
12222
4
原创 简单实现根据Td-idf实现语句相似度
假设两个语句已经分好词,计算两个向量的余弦相似度public class Similar { public static String string; public static String str; public static double d; public static double getSimilarity(Vector T1, Vector T2) throws
2017-04-28 15:25:43
1185
原创 找出一组数中相同的数据并取出计算出长度
最近在写一些东西的时候突然遇到以下问题:比如,一组数{1,1,2,3,4,5,5,3},怎么从这组数中取出相同的数并且保证取出的数当做此数组的key,例如上述数组经过取之后变成{1,{1,1}},{2,{2}},{3,{3,3},{4,{4}},{5,{5,5}},并且计算出每组数组的长度下面贴出代码:public class Test { public static void ma
2017-04-26 20:05:09
639
原创 网易招聘编程笔试题
1.如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个
2017-03-30 11:48:10
625
转载 Java内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中 实例1:内部类的基本结构1
2017-03-21 19:41:44
235
原创 插入排序以及和冒泡排序的区别
一、 插入排序插入排序:每次从输入数据中移除一个元素并将其插入已排序序列的正确位置,直到所有输入元素都插入有序序列中。插入排序适用于数据几乎都已经排序或者输入数据规模较小时可以使用插入排序。什么意思呢?举个例子:例如:给定一个序列:6 8 1 4 5 3 7 2第一次:6 8 1 4 5 3 7 2 (
2017-03-09 14:30:04
2776
原创 Java笔试题-1
1 有如下一段代码,请选择其运行结果()public class StringDemo{ private static final String MESSAGE="taobao"; public static void main(String [] args) { String a ="tao"+"bao"; String b="tao"; String c="
2017-03-08 11:02:57
319
原创 《统计学习方法》笔记-第一章
第一章 统计学习方法概论、图片未能正常显示,请在文件末尾下载PDF文件 1.监督学习、非监督学习监督学习:学习一个模型,使模型能够对任意的输入,都能给相应的输出做出很好的预测。如分类和回归。事先是有训练数据的非监督学习: 而无监督学习是事先没有训练数据的,直接对数据进行建模,如聚类等。2. 回归、分类和标注问题输入变量与输出变量均为连续变量预测的问题称为回归问
2017-03-01 19:23:50
108
原创 Logistic回归
1、逻辑回归本着学习的原则,搜集了各方面的资料来进行一下逻辑回归的总结。首先说下什么是逻辑回归,逻辑回归和线性回归一样,都是回归中常见的算法。那么什么是回归呢,它和分类有什么区别呢?逻辑回归是分类还是回归呢?首先说下什么是回归,比如有在二维平面上一系列的点,例如(x1,y1),(x2,y2)..等等,然后让你从这些点中拟合一条曲线,然后通过拟合的曲线来计算未知的数据,比如再给你一个x,你就能很
2017-02-22 19:08:06
458
原创 决策树的剪枝和CART算法
一、简介分类与回归树CART (Ciassification and Regression Trees)是分类数据挖掘算法的一种。CART是在给定输入随机变量X条件下输出随机变量Y的条件分布概率。该模型使用了二叉树将预测空间递归划分为若干子集,Y在这些子集的分布是连续均匀的。树中的叶节点对应着划分的不同区域,划分是由与每个内部节点相关的分支规则(Spitting Rules)确定的。通过从
2017-02-21 20:08:17
571
原创 K近邻-kd树
k近邻算法给定一个训练数据集,对新的输入实例,在训练数据集中找到跟它最近的k个实例,根据这k个实例的类判断它自己的类(一般采用多数表决的方法)。k近邻模型模型有3个要素——距离度量方法、k值的选择和分类决策规则。模型当3要素确定的时候,对任何实例(训练或输入),它所属的类都是确定的,相当于将特征空间分为一些子空间。距离度量
2017-01-12 20:16:54
706
2
原创 感知机模型
一、什么是感知机感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础。感知机是二类分类的线性分类模型,其输入实例为实例的特征向量,输出为实例的类别,取+1和-1二值。二 感知机模型定义假设输入空间是,输出空间是,x和y分属这两个空间,那么由输入空间到输出空间的如下函数:称为感知机。其中,w和b称为感知机模型参数,叫做权值或权值
2017-01-10 17:47:17
656
转载 EM算法的理解以及应用
本文是《统计学方法》第九章自己的笔记,为了更方便的理解,本文对转载的文章内容稍作修改。EM算法的每次迭代由两部分组成:E步,求期望;M步,求极大。所以这一算法称之为期望极大算法,简称EM算法。EM算法的引入介绍一个使用EM算法的例子:三硬币模型有ABC三枚硬币,单次投掷出现正面的概率分别为π、p、q。利用这三枚硬币进行如下实验:1、第一次先投掷A,若出现
2017-01-08 15:10:51
10040
转载 numpy中的矩阵和数组运算
Preface在相关聚类算法的实现过程中,用python语言实现,会经常出现array和matrix的混淆,这里做个总结。array数组numpy中最基本(默认)的类型是array,他的相关操作都是按元素操作的即用作数值计算当中(按元素操作有+,-,,/,*等)。相乘举例: from numpy import * >>> a=array([1,2]) >>>
2017-01-04 15:40:16
713
转载 欠拟合与过拟合概念
欠拟合与过拟合概念本次课程大纲:1、 局部加权回归:线性回归的变化版本2、 概率解释:另一种可能的对于线性回归的解释3、 Logistic回归:基于2的一个分类算法4、 感知器算法:对于3的延伸,简要讲 复习: –第i个训练样本令,以参数向量为条件,对于输入x,输出为:n为特征数量
2016-12-30 20:27:10
1583
原创 《机器学习实战》—决策树
1 决策树的构造在构造决策树之前,我们需要解决的第一个问题就是当前数据集上哪个特征在划分数据集上起决定性作用。为了划分出最好的效果,我们必须评估每个特征。一般的划分数据采用二分法,而本文采用ID3算法划分数据集上面的表包含了5个海洋生物的数据,两个特征以及把这些动物分成鱼类和非鱼类,现在我们决定是依据第一个特征还是第二个特征来划分数据。2. 信息增益
2016-12-14 20:04:51
529
原创 spring中AOP一些常用操作术语
1.连接点(Joinpoint)类里面哪些方法需要增强则称这些方法为连接点。2.切入点(PointCut)在类里面可以有很多的方法被增强,比如说在实际操作中,只增强了add()方法和del()方法,实际增强的方法称为切入点3.通知/增强(Advice)增强的逻辑称为增强,比如增强了扩展日志的功能,这个日志功能称之为增强。前置通知:在方法之前执行后置通知:
2016-12-08 19:29:19
522
原创 spring中IOC底层详解
IOC底层原理Ioc实现的技术 (1)xml配置文件 (2)dom4j解析xml (3)工厂模式 (4)反射通过IOC,我们如果改掉UserService类,只需更改bean里面的配置属性就行了,降低了类之间的耦合度
2016-12-08 12:55:00
2339
1
转载 R树:处理空间存储问题
转自大神的博客:http://blog.csdn.net/v_JULY_v/article/details/6530142/R树:处理空间存储问题相信经过上面第一节的介绍,你已经对B树或者B+树有所了解。这种树可以非常好的处理一维空间存储的问题。B树是一棵平衡树,它是把一维直线分为若干段线段,当我们查找满足某个要求的点的时候,只要去查找它所属的线段即可。依我看来,这种思想其实就是先
2016-11-15 21:04:00
781
原创 链表中的一些算法,Java实现
public class ListNode { /** * @param args * 声明一个链表 */ private int data; private ListNode next; public ListNode(int data){ this.data=data; } public int getData() { return data; } pub
2016-11-11 21:14:13
97
原创 java线程通信-生产者消费者
1 调用wait()方法可以让线程等待,并释放对象锁,直到interrupt()方法中断它或者另一个线程调用notify()或者notify()All唤醒2.wait()方法可以带个参数,此时不需要唤醒3.调用notify()方法可以随机选择一个在该对象调用wait()方法的线程4.notif和notifyAll()只能在同步方法或者同步块中使用5.wait()和sleep()的区
2016-10-28 14:10:55
361
原创 java中synchronized,线程同步
一、.线程同步Java使用监控器(也称对象锁)实现同步。每个对象都有一个监控器,使用监控器可以保证一次允许一个线程执行对象的同步语句。即在对象的同步语句执行完毕之前,其他试图执行当前对象的同步语句的线程都将处于阻塞状态,只有线程在当前对象的同步语句执行完毕后,监控器才会释放对象,并让最高优先级的阻塞线程处理它的同步语句。也可以这样理解对象锁,拨打公共信息服务台时,接话员可以被多个客户访问,
2016-10-28 11:15:56
275
原创 事务操作
1.什么是事务?数据库中一些操作的集合是一个独立的单元,事务就是构成单一逻辑工作单位的集合。2.什么是回滚?未能成功完成的事务成为中止事务,对中止事务造成的变更需要进行撤销处理,成为事务回滚。3.事务具有四个特性:原子性:事务中的全部操作是不可分割的,要么全部完成,要么均不执行。一致性:事务执行之前和执行之后,数据库都必须处于一致性状态隔离性:事务的执行不受其他事务的干
2016-10-27 15:31:21
343
原创 用斐波那契数列来说明递归和迭代的区别
递归:自己调用自己迭代:反复替换的意思递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止。使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本
2016-10-22 21:15:42
2464
原创 BufferedInputStream和BufferedOutputStream过滤流的使用
从test.txt文件内容读取出来public class BuferedDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BufferedInputStream bi=null; try { bi=
2016-10-21 12:02:49
333
转载 Java中collection和collections的区别
今天翻看Java笔试题,发现有这样问题,比较Collection 和Collections的区别。在这里把二者区别记录下来。 1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Co
2016-10-20 11:30:28
747
转载 泛型
转自http://www.cnblogs.com/lwbqqyumidi/p/3837629.html一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 Lis
2016-10-20 10:22:23
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人