自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

哆啦A梦的博客

业精于勤荒于嬉,行成于思而毁于随

  • 博客(210)
  • 资源 (26)
  • 问答 (1)
  • 收藏
  • 关注

转载 常用算法---动态规划算法

一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的

2016-06-27 16:17:47 445

转载 常用算法---分支算法

一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小

2016-06-27 16:14:32 1860

转载 java多线程----Runnable和Thread实现多线程的区别(含代码)

转自:http://blog.csdn.net/ns_code/article/details/17161237 Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势:1、可以避免由于Java的单继承特性而带来的局限;2、增强程序的健壮性,代码

2016-06-27 16:06:09 460

转载 常用算法----回溯算法

1、概念回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用

2016-06-27 10:43:22 615

原创 二叉树的层次遍历输出

从上到下层次遍历二叉树,并打印输出,使用的是队列,依次存储,输出的时候先把队首输出,同时去除队首元素。 上代码:package binaryTree;import java.util.LinkedList;import java.util.Queue;/** * 二叉树的层次遍历,使用队列 * * @author duola * */public class cengcibianl

2016-06-23 16:09:56 2606

原创 给定入栈顺序,判断出栈顺序是否合法

给定一个入栈顺序,判断出栈顺序是否有可能发生,所遵循的方法是使用一个辅助栈记录入栈的元素,当刚开始时候辅助栈为空,入栈元素第一个压入辅助栈,接下来如果看出栈顺序,如果出栈顺序的第一个元素和辅助栈的栈顶元素不相等,则继续把 入栈元素的下一个压入辅助栈;如果出栈顺序的元素和辅助栈的栈顶元素相等则直接将辅助栈的栈顶元素弹出,同时出栈序列向后移动一位。以此类推,如果当入栈元素全部进入辅助栈了,则秩序比较出栈

2016-06-23 14:32:20 2730

转载 MYSQL---索引问题汇总

1、什么是索引?数据库的索引类似于字典的索引,可以按照偏旁、拼音、首字母进行查询,实现快速查询的目的。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。2、在什么情况下创建索引?表的主关键字   自动建立唯一索引     如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号)

2016-06-23 09:52:30 518

转载 最大递增子序列--动态规划+二分

转自:https://www.felix021.com/blog/read.php?1587最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS。 排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了。假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。 下面一步一步试着找出它。 我们定义

2016-06-22 20:40:18 469

原创 最大公共子串--动态规划

和最大公共子序列类似,都是采用的是动态规划,不同的是,连续的串不需要判断不相等情况下的求最大,只需要判断相等即可,然后更新最大长度和每个序列的起始位置。package stringTest;/** * 最大公共子串 * @author duola * */public class lcs2 { public static String lcs2(String s1,String s

2016-06-22 16:46:06 479

原创 最大公共子序列--动态规划

求两个序列的最大公子序列,比如说a=”12398”,b=”238”最大公共子序列,不要求连续。使用动态规划的方式进行求解,用一个二维矩阵c[i][j]表示序列1的前i位和序列2的前j位的最大公共子序列,如果a[i]==b[j]那么从c[i][j]=c[i-1][j-1]+1;否则c[i][j]=max(c[i-1][j],c[i][j-1]).最后求得的矩阵中的最大值就是最大公共子序列的长度,然后可

2016-06-22 16:11:23 477

原创 最大子序列和

最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的子序列。package string

2016-06-22 11:00:37 548

原创 leetcode--Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings. 找到多个字符串的最大公共子序列,方法是从第一个字符串开始,然后依次比较第一个字符串的每一个字符和其余字符串的每一个字符是否相等。package stringTest;public class LongestCommonPref

2016-06-22 10:33:48 328

原创 机器学习----朴素贝叶斯分类算法

朴素贝叶斯的基本概念和定理朴素贝叶斯假设数据是服从条件独立性假设的,有了这一个严格的限制,就可以求联合概率分布,算法中最重要的公式就是条件概率, 设输入空间是n维向量的集合,取其中m个样本做训练数据集,表示为S={S_1,S_2,…,S_m},其中每个样本S_i都是一个n维向量{x_1,x_2,…,x_n};输出空间是类标记的集合,表示为Y={C_1,C_2,…,C_k},取自输入空间的每个样本S

2016-06-21 17:23:11 1062

原创 leetcode---Valid Parentheses

Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.The brackets must close in the correct order, “()” and “()[]{}” are all valid but “

2016-06-21 10:32:23 399

转载 java中的Stack的使用

JAVA 中,使用 java.util.Stack 类的构造方法创建对象。 public class Stack extends vector 构造方法 : public Stack() 创建一个空 Stack。 方法: . public push (item ) 把项 压入栈顶。其作用与 addElement (item ) 相同。 参数 item 压入栈顶的项 。 返回: i

2016-06-21 10:27:18 1056

原创 leetcode--Roman to Integer

Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.解题思路:罗马数字用几个特殊的符号表示特殊的数字,其余的数字用多个符号的左右次序表示。如果一个符号代表的数字比下一个小,则是相减。否则就是相加。public class Solution {

2016-06-20 19:20:48 408

原创 leetcode---Compare Version Numbers

Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.You may assume that the version strings are non-empty and conta

2016-06-20 11:12:26 334

原创 leetcode---ZigZag Conversion 找规律

The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H N A P L S I I G

2016-06-20 10:18:55 514

原创 包含min函数的栈---重写栈实现特定的功能

重写一下栈的结构,要求具备入栈、出栈、求最小元素,复杂度都是o(1), 解题思路是用一个辅助栈存储每一次入栈时候的最小元素,出栈的时候,如果出栈的元素恰好是最小元素,则把辅助栈的栈顶元素删除。需要注意的是,模板类型,不能指定成具体的类型,还有就是辅助找存放的是最小元素在数据栈中的位置,且辅助栈的元素数目时刻与数据栈中的元素的数目相等。java代码package stackAndQuence;imp

2016-06-16 16:48:41 391

原创 顺时针打印二维数组---执行判断

将一个二维数组顺时针进行打印,如图所示, 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 打印出来是:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。思路:打印分为四步:从左到右,从上到下,从右到左,从下到上。第一步是肯定会执行的,到达列数时开始执行第二步,第二步能够执行的条件终止行号大于起始行号,第三步打印的前提条件是圈内至少有

2016-06-16 14:50:12 1367

转载 java中的初始化次序问题

java中不管是类变量还是实例变量初始化都有多种方式,但是初始化的执行次序又是”千奇百怪“,常用的初始化的方式可以通过以下几种:静态变量、静态初始化块、变量、初始化块、构造器。他们的先后执行次序是:(静态变量、静态初始化块)>(变量、初始化块)>构造器。静态变量、静态初始化块的优先级相同,谁在前谁就先执行,同理变量、初始化块的优先级相同,谁在前谁就先执行。public class test {

2016-06-13 22:24:01 475

原创 JAVA中的变量----实例变量和类变量

java中的变量分为2种:一种是成员变量,一种是局部变量。成员变量是在类内定义的变量,成员变量有分为两种, 如果是用static修饰的就是静态变量或者叫类变量;没有被static修饰就是非静态变量或者叫实例变量。局部变量包括3种: 方法的形参,通过方法的调用进行赋值,并随着方法的结束而结束; 方法内的局部变量,必须在方法内对其进行显式的初始化,随着方法的结束而结束; 代码块内的局部变量,随着

2016-06-13 21:57:55 1583

原创 检测二叉树是否是另一个二叉树的子树

检测方法是先比较根节点,如果根节点相等继续比较左右子树,使用递归的方法;如果根节点不相等,则比较左子树的根节点是否和要比较的二叉树的根节点相等。package binaryTree;import java.util.regex.Matcher;import javax.security.auth.Subject;/** * 检测二叉树是否是另一个二叉树的子树 * * @author duol

2016-06-08 10:49:02 801

原创 链表的倒数第K个结点--双指针

找到单链表中倒数第k个结点。解题思路是双指针,第一个指针从头向尾部一定k-1位,然后这时候第二个指针再从头部开始移动,当第一个指针移动到尾部的时候,第二个指针指的位置就是倒数第K个。这里需要考虑一些特殊情况,比如头结点为空、k==0、k>链表中的结点数。还需要注意一点的就是倒数第k个,k是从1开始的。/** * Definition for singly-linked list. * publi

2016-06-06 22:01:51 521

原创 调整数组顺序使得奇数位于偶数前面

使用双指针,一个从头开始,一个从尾部开始,若第一个遇到偶数,且第二个遇到奇数则互换,结束的条件就是指针相遇。package twoPointer;public class jishuoushi { private static void change(int[] a) { if (a.length == 0 || a == null) { return;

2016-06-06 20:10:50 417

原创 删除链表的结点---o(1)

删除链表的节点,只允许访问这个结点,可以使用将这个结点的next指向结点的next.next.同时相应的val值换成结点的next的值就可以了。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x)

2016-06-06 19:55:20 323

原创 打印1到最大的n位数

题目:输入一个数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,输出1,2,3。。。。。999。 常规的想法就是求出最大的那个数,然后遍历输出。但是当n非常大的时候就无法这么做了,可以考虑数组存储。实际上是一个全排列问题。package others;/** * 输入一个数字n,按顺序打印出从1到最大的n位十进制数 * * @author duola * */public c

2016-06-06 10:28:31 405

原创 数值的整数次方---考察是否考虑的全面

给定题目是求一个double类型底数的整数次方,这个题目并不难,考察的是是否能够考虑全面,一般遇到求幂次或者分数的题目,都要考虑一些特征情况。这个提米需要考虑一下几点:1、是否可以任意的输入,如果不是非法输入是什么?—非法输入就是当底数为0,指数为负数的时候。2、底数是一个double型,判断是否为零,是否可以用==?—-计算机在表示小数的时候有误差,不能直接用==这个符号,要写一个函数判断,可以设

2016-06-06 09:25:26 457

转载 public、private、protected、friendly作用域范围

public:(公共)意味着后续的定义任何人均可使用。private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,即便是子女,朋友,都不可以使用。protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。friendly: 意味着它只能在这个包

2016-06-05 17:13:10 1128

转载 各种分类算法优缺点比较

文章转自:http://bbs.pinggu.org/thread-2604496-1-1.html1决策树(Decision Trees)的优缺点 决策树的优点: 一、 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。 二、 对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白

2016-06-05 16:06:30 2179

原创 求裴波那契数列的第n项---递归+改进

裴波那契数列的第n项,可以很简单的使用递归,但是递归很多层之后有可能会造成栈溢出,而且速度也不一定会快。只是方法简单了,当面临大量的计算层数的时候递归并不是很好的选择。改进方法就是保存每次计算的结果,下一次计算的时候可以调用。package others;import stringTest.replaceBlank;import SortTest.insertSortTest;/** * 求裴波

2016-06-02 11:13:40 3451

原创 xgboost在window安装----免编译步骤

首先按照常规的流程是需要对xgboost进行编译,然后再安装的。但是有一个问题就是很多人不会编译,有的是没有编译环境,于是为了免去编译,我在这里提供了编译好的文件,直接下载后安装就可以了。1。下载文件 地址:http://download.csdn.net/detail/a1b2c3d4123456/95376392、解压缩到python的= …\python2.7\Lib\site-packag

2016-06-01 13:26:04 3216 13

原创 两个队列实现栈--出栈,入栈

栈和队列新加入元素的时候总是在最后加入,只不过队列出的时候栈顶,队列出的是队首。所以入栈就是先把元素进入队列1,出栈的时候,先判断队列1有几个元素,如果只有一个元素就直接输出这个元素就好,如果不止1个就先把队列1的n-1个元素放入队列2,然后把队列1的元素弹出,弹出后队列1就空了,如果此时还要进行出栈操作,就报队列2的n-1个元素放到队列1中然后弹出队列2的元素。package stackAndQu

2016-06-01 11:22:15 1864

原创 利用两个栈实现队列---入队和出队

栈是先入后出,队列是先入先出。根据这个思想,可以用一个栈作为入队,另一个栈作为出队。只要把第一个栈的栈顶的元素压入第二个栈就好了,出队的时候输出第二个栈的栈顶,如果第二个栈的空了就需要不断操作从第一个栈的栈顶压入第二个栈,但是如果第一个栈也空了,那就说明所有元素都输出来了。package stackAndQuence;import java.util.Stack;/** * 使用两个栈实现队列,出

2016-06-01 10:11:01 4649

原创 旋转数组的最小值---二分思想

题目: 把一个数组最开始的若干个元素搬到数组的末尾, 我们称之数组的旋转。输入一个递增排序的数组的一个旋转, 输出旋转数组的最小元素。例如数组{3,4, 5, 1, 2 }为{ l1,2,3, 4,5}的一个旋转,该数组的最小值为 1。package arrayTest;/** * 反转数组查找最小值,利用的是二分查找的思想 * @author duola * */public class

2016-05-30 10:30:41 376

原创 数组部分元素反转--三次翻转法

题目要求部分反转数组。比如说1,2,3,4,5 翻转后是3,4,5,1,2 即原来有序,反转后2部分各自有序。package arrayTest;/** * 数组部分反转,使用的是三次反转 * @author duola * */public class reverse { //从指定位置开始反转 private static void reverse(int [] a

2016-05-30 10:29:36 2661 1

原创 从尾到头打印单链表

使用递归进行从尾到头打印链表。java代码public class ListNode{ ListNode next; int val; ListNode(int x){ val=x;}public static void print_reverse(ListNode head){ if(head==null||head.next==null) System.o

2016-05-19 17:00:00 454

原创 字符串的空格替换

有一个字符串a=”we are you.”空格替换%20,常规的解法是从前往后遍历,遇到空格,替换,然后后面的元素向后移2位,以此类推,这样的时间复杂度是n2,因为会有一部分数据重复移动多次,比较好的解决方案就是先求出替换完之后,最后一个元素的位置,然后从后向前处理字符串。java代码:private static void replace(char[] test,int space) {

2016-05-19 15:59:21 369

原创 二维数组查找目标值

有一个二维数组,每一行、每一列都是递增的,查找一个目标值,如果存在就返回true否则返回false. 从右下角开始,如果大于目标值则向左,如果小于目标值则向下。package SearchTest;public class erWeiArray { private static boolean find(int[][] a, int val) { boolean find =

2016-05-18 20:40:43 550

原创 leetcode 2---Add Two Numbers 进位 链表 数学

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linke

2016-05-17 20:49:15 416

逻辑回归python实现

在开源的基础上实现的逻辑回归,纯python实现,采用的是批量梯度下降,用户可以自己换其他的梯度下降方式

2017-10-11

ACM程序设计

《ACM程序设计(第2版)》详细讲解了ACM国际大学生程序设计竞赛(ACM/ICPC)编程、调试方法,以及提高时间、空间性能的策略,并充分利用了C++泛型编程的高效率、规范化的特性,全部采用C++泛型编程。第1章讲解了ACM程序设计入门知识;第2章讲解了C++泛型编程的容器、迭代器和常用算法;第3章讲解了ACM程序设计的基本编程技巧;第4章讲解了50道原版ACM竞赛题的解题思路,并配有C++泛型编程参考答案和题目的中文翻译。《ACM程序设计(第2版)》是一本专门针对ACM国际大学生程序设计竞赛而编写的入门教程,适合参加ACM/ICPC的大学生和C++编程爱好者学习,对ACM/ICPC竞赛教练也具有一定的指导作用。

2016-11-16

数据挖掘常用算法代码实现

数据挖掘常用算法代码实现

2016-11-15

剑指offer--java

剑指offer--java

2016-11-15

文本分类停用词

文本分类停用词,哈工大,北大,百度的

2016-10-26

xgboost编译后的

xgboost编译后的文件,下载后直接解压就可以使用

2016-06-01

The k-means clustering algorithm

The k-means clustering algorithm ----by NG

2016-04-06

Multi-View K-Means Clustering on Big Data

Multi-View K-Means Clustering on Big Data论文简洁讲义

2016-04-06

Gitlab搭建所需软件

搭建gitlab的框架所需要的软件,能够帮助开发者

2016-01-17

ODPS的使用说明

阿里的odps的使用说明,简单快速上手,希望对新手有一些帮助

2015-11-13

深度学习教程——斯坦福

深度学习的入门材料,免费提供诶大家,欢迎一起交流

2015-10-30

图像可视化的综述+原文+译文

Graph Visualization and Navigation in Information Visualization A Survey原文+译文

2015-10-18

SPSS课程资料

spss的专业指导课程,希望能够对大家有帮助。

2015-10-18

机器学习实战的代码和电子版

机器学习实战的代码和电子版,希望对大家有帮助。

2015-10-18

apriori java 数据库读取

apriori挖掘频繁模式和关联规则。本例使用java实现,数据库连接使用的是mysql

2015-08-11

scala 学习资料

学习spark的时候接触到的Scala语言,这里有一套学习资料,希望对大家有帮助。

2015-07-22

pagerank matlab实例

pagerank的一个简单的小实例,使用matlab实现的,附带使用说明。希望可以帮助你。

2015-07-15

深度学习 修改卷积层

修改了卷基层,在卷基层后加了一个预处理层,将数据归一化到500维的正确维度上

2015-07-08

matlab算法大全

matlab的算法大全是用matlab实现的一些常用算法和模型,包括像动态规划和神经网络等等。

2015-07-06

新闻发布系统模板javaee

一个很不错的新闻发布系统的模板,所应用的技术还算是比较新的,javaee开发的

2015-06-11

随机森林最原始的论文

最原始的随机森林论文,被引用次数高达5000+

2015-06-06

爬虫程序 可以运行的

写的一个小小的爬虫,因为课程需要而写的,现在贡献给大家

2015-05-18

机器学习与模式识别 完整清晰中文版 PRML 之作

PRML 大神之作,伯克利教授的中文版终于来了。

2015-05-14

csharp基本技术制作的小bbs

一个简单的c#制作的bbs,虽然很简单,但是基本功能都具备了,希望可以帮到你。

2015-03-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除