- 博客(38)
- 资源 (26)
- 问答 (1)
- 收藏
- 关注
原创 java中String、StringBuffer、StringBuilder的总结
看了很多关于java的string的相关知识,这里做一个较为全面的总结,内容转自不同地方的博客,鉴于出处较多,就不一一列举了。java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。String 字符串常量 StringBuffer 字符串变量(线程安全) String
2016-06-30 11:10:53 1808
原创 leetcode 350---Intersection of Two Arrays II 数组 双指针 排序
Given two arrays, write a function to compute their intersection.Example: Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2].Note: Each element in the result should appear as many times as it
2016-06-29 15:17:55 530
原创 leetcode 3---Longest Substring Without Repeating Characters 双指针 String
Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the length is 3.Given “bbbbb”, the answer is “b”, with the le
2016-06-29 10:33:50 567
原创 机器学习---白话Logistic回归
1、Logisti回归的基本概念首先logistic回归是一个分类算法,大家不要被名称所诱惑,这一点非常重要!然后logistic回归属于是利用了一个叫做sigmoid函数的映射,简称S函数,S函数的定义如下: 函数图像是这样的: 分类的模型使用的是将上面的的S函数的分母的e的幂次换掉。然后直接判断
2016-06-28 16:16:36 1346
转载 常用算法---动态规划算法
一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的
2016-06-27 16:17:47 461
转载 常用算法---分支算法
一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小
2016-06-27 16:14:32 1964
转载 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 474
转载 常用算法----回溯算法
1、概念回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用
2016-06-27 10:43:22 635
原创 二叉树的层次遍历输出
从上到下层次遍历二叉树,并打印输出,使用的是队列,依次存储,输出的时候先把队首输出,同时去除队首元素。 上代码:package binaryTree;import java.util.LinkedList;import java.util.Queue;/** * 二叉树的层次遍历,使用队列 * * @author duola * */public class cengcibianl
2016-06-23 16:09:56 2625
原创 给定入栈顺序,判断出栈顺序是否合法
给定一个入栈顺序,判断出栈顺序是否有可能发生,所遵循的方法是使用一个辅助栈记录入栈的元素,当刚开始时候辅助栈为空,入栈元素第一个压入辅助栈,接下来如果看出栈顺序,如果出栈顺序的第一个元素和辅助栈的栈顶元素不相等,则继续把 入栈元素的下一个压入辅助栈;如果出栈顺序的元素和辅助栈的栈顶元素相等则直接将辅助栈的栈顶元素弹出,同时出栈序列向后移动一位。以此类推,如果当入栈元素全部进入辅助栈了,则秩序比较出栈
2016-06-23 14:32:20 2778
转载 MYSQL---索引问题汇总
1、什么是索引?数据库的索引类似于字典的索引,可以按照偏旁、拼音、首字母进行查询,实现快速查询的目的。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。2、在什么情况下创建索引?表的主关键字 自动建立唯一索引 如zl_yhjbqk(用户基本情况)中的hbs_bh(户标识编号)
2016-06-23 09:52:30 540
转载 最大递增子序列--动态规划+二分
转自: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 481
原创 最大公共子串--动态规划
和最大公共子序列类似,都是采用的是动态规划,不同的是,连续的串不需要判断不相等情况下的求最大,只需要判断相等即可,然后更新最大长度和每个序列的起始位置。package stringTest;/** * 最大公共子串 * @author duola * */public class lcs2 { public static String lcs2(String s1,String s
2016-06-22 16:46:06 486
原创 最大公共子序列--动态规划
求两个序列的最大公子序列,比如说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 493
原创 最大子序列和
最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{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 575
原创 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 345
原创 机器学习----朴素贝叶斯分类算法
朴素贝叶斯的基本概念和定理朴素贝叶斯假设数据是服从条件独立性假设的,有了这一个严格的限制,就可以求联合概率分布,算法中最重要的公式就是条件概率, 设输入空间是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 1085
原创 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 410
转载 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 1080
原创 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 445
原创 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 343
原创 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 529
原创 包含min函数的栈---重写栈实现特定的功能
重写一下栈的结构,要求具备入栈、出栈、求最小元素,复杂度都是o(1), 解题思路是用一个辅助栈存储每一次入栈时候的最小元素,出栈的时候,如果出栈的元素恰好是最小元素,则把辅助栈的栈顶元素删除。需要注意的是,模板类型,不能指定成具体的类型,还有就是辅助找存放的是最小元素在数据栈中的位置,且辅助栈的元素数目时刻与数据栈中的元素的数目相等。java代码package stackAndQuence;imp
2016-06-16 16:48:41 403
原创 顺时针打印二维数组---执行判断
将一个二维数组顺时针进行打印,如图所示, 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 1381
转载 java中的初始化次序问题
java中不管是类变量还是实例变量初始化都有多种方式,但是初始化的执行次序又是”千奇百怪“,常用的初始化的方式可以通过以下几种:静态变量、静态初始化块、变量、初始化块、构造器。他们的先后执行次序是:(静态变量、静态初始化块)>(变量、初始化块)>构造器。静态变量、静态初始化块的优先级相同,谁在前谁就先执行,同理变量、初始化块的优先级相同,谁在前谁就先执行。public class test {
2016-06-13 22:24:01 489
原创 JAVA中的变量----实例变量和类变量
java中的变量分为2种:一种是成员变量,一种是局部变量。成员变量是在类内定义的变量,成员变量有分为两种, 如果是用static修饰的就是静态变量或者叫类变量;没有被static修饰就是非静态变量或者叫实例变量。局部变量包括3种: 方法的形参,通过方法的调用进行赋值,并随着方法的结束而结束; 方法内的局部变量,必须在方法内对其进行显式的初始化,随着方法的结束而结束; 代码块内的局部变量,随着
2016-06-13 21:57:55 1615
原创 检测二叉树是否是另一个二叉树的子树
检测方法是先比较根节点,如果根节点相等继续比较左右子树,使用递归的方法;如果根节点不相等,则比较左子树的根节点是否和要比较的二叉树的根节点相等。package binaryTree;import java.util.regex.Matcher;import javax.security.auth.Subject;/** * 检测二叉树是否是另一个二叉树的子树 * * @author duol
2016-06-08 10:49:02 818
原创 链表的倒数第K个结点--双指针
找到单链表中倒数第k个结点。解题思路是双指针,第一个指针从头向尾部一定k-1位,然后这时候第二个指针再从头部开始移动,当第一个指针移动到尾部的时候,第二个指针指的位置就是倒数第K个。这里需要考虑一些特殊情况,比如头结点为空、k==0、k>链表中的结点数。还需要注意一点的就是倒数第k个,k是从1开始的。/** * Definition for singly-linked list. * publi
2016-06-06 22:01:51 545
原创 调整数组顺序使得奇数位于偶数前面
使用双指针,一个从头开始,一个从尾部开始,若第一个遇到偶数,且第二个遇到奇数则互换,结束的条件就是指针相遇。package twoPointer;public class jishuoushi { private static void change(int[] a) { if (a.length == 0 || a == null) { return;
2016-06-06 20:10:50 427
原创 删除链表的结点---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 331
原创 打印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 414
原创 数值的整数次方---考察是否考虑的全面
给定题目是求一个double类型底数的整数次方,这个题目并不难,考察的是是否能够考虑全面,一般遇到求幂次或者分数的题目,都要考虑一些特征情况。这个提米需要考虑一下几点:1、是否可以任意的输入,如果不是非法输入是什么?—非法输入就是当底数为0,指数为负数的时候。2、底数是一个double型,判断是否为零,是否可以用==?—-计算机在表示小数的时候有误差,不能直接用==这个符号,要写一个函数判断,可以设
2016-06-06 09:25:26 471
转载 public、private、protected、friendly作用域范围
public:(公共)意味着后续的定义任何人均可使用。private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,即便是子女,朋友,都不可以使用。protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。friendly: 意味着它只能在这个包
2016-06-05 17:13:10 1171
转载 各种分类算法优缺点比较
文章转自:http://bbs.pinggu.org/thread-2604496-1-1.html1决策树(Decision Trees)的优缺点 决策树的优点: 一、 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。 二、 对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白
2016-06-05 16:06:30 2202
原创 求裴波那契数列的第n项---递归+改进
裴波那契数列的第n项,可以很简单的使用递归,但是递归很多层之后有可能会造成栈溢出,而且速度也不一定会快。只是方法简单了,当面临大量的计算层数的时候递归并不是很好的选择。改进方法就是保存每次计算的结果,下一次计算的时候可以调用。package others;import stringTest.replaceBlank;import SortTest.insertSortTest;/** * 求裴波
2016-06-02 11:13:40 3466
原创 xgboost在window安装----免编译步骤
首先按照常规的流程是需要对xgboost进行编译,然后再安装的。但是有一个问题就是很多人不会编译,有的是没有编译环境,于是为了免去编译,我在这里提供了编译好的文件,直接下载后安装就可以了。1。下载文件 地址:http://download.csdn.net/detail/a1b2c3d4123456/95376392、解压缩到python的= …\python2.7\Lib\site-packag
2016-06-01 13:26:04 3250 13
原创 两个队列实现栈--出栈,入栈
栈和队列新加入元素的时候总是在最后加入,只不过队列出的时候栈顶,队列出的是队首。所以入栈就是先把元素进入队列1,出栈的时候,先判断队列1有几个元素,如果只有一个元素就直接输出这个元素就好,如果不止1个就先把队列1的n-1个元素放入队列2,然后把队列1的元素弹出,弹出后队列1就空了,如果此时还要进行出栈操作,就报队列2的n-1个元素放到队列1中然后弹出队列2的元素。package stackAndQu
2016-06-01 11:22:15 1884
原创 利用两个栈实现队列---入队和出队
栈是先入后出,队列是先入先出。根据这个思想,可以用一个栈作为入队,另一个栈作为出队。只要把第一个栈的栈顶的元素压入第二个栈就好了,出队的时候输出第二个栈的栈顶,如果第二个栈的空了就需要不断操作从第一个栈的栈顶压入第二个栈,但是如果第一个栈也空了,那就说明所有元素都输出来了。package stackAndQuence;import java.util.Stack;/** * 使用两个栈实现队列,出
2016-06-01 10:11:01 4723
ACM程序设计
2016-11-16
Multi-View K-Means Clustering on Big Data
2016-04-06
图像可视化的综述+原文+译文
2015-10-18
如何进行机器学习算法的实验?
2015-10-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人