- 博客(210)
- 资源 (26)
- 问答 (1)
- 收藏
- 关注
原创 06--重建二叉树
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路: 可以通过前序遍历和中序遍历确定一棵二叉树,也可以通过后序遍历和中序遍历确定一棵二叉树,但是无法通过前序遍历和后序...
2019-07-29 15:38:38 405
原创 05--从尾到头打印链表
题目输入个链表的头结点,从尾到头反过来打印出每个结点的值。思路从头遍历链表,遍历过程中用栈把节点或者节点的值保存下来,然后遍历栈即可。或者是使用递归code非递归,使用栈public void printListFromTailToHead(ListNode listNode) { Stack<ListNode> save = new...
2019-07-17 15:11:10 408
原创 04--字符串替换
题目请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。思路最简单就是直接str.replace(),显然不能这样做…,进而想到的就是开辟一个新的数组存放结果,然后遍历字符串里的字符,判断后进行替换,存到新的数组,这个需要开辟新的空间。直接在原有的数组上进行扩容,然后从后往前,用双指针进行遍历和赋值。c...
2019-07-17 14:32:51 720
原创 03--二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数思路暴力方法是按照行或者列遍历,一个一个,较慢。所以需要按照从某个顶点开始,然后判断下一个方向是什么,由于该二维数组的规则,可知只能是从左下顶点或者右上顶点开始,因为左上顶点和右下定点开始遍历不...
2019-07-17 11:31:26 270
原创 Truncated Gradient --截断梯度
Truncated Gradient --截断梯度简介简单截断法L1正则化法截断梯度法(Truncated Gradient)简介最近接触了大规模机器学习,在进行模型训练的时候采用的是广义线性模型,由于超高维度(十亿级别)导致训练的模型最后超级大,为了上线模型服务,最后的模型不能太大,需要进行模型的剪枝,于是就涉及到了梯度截断,用以减少模型的最终的权重的数量。同时梯度截断也可以减少不重要特征,...
2019-05-31 20:44:48 3816
原创 逻辑回归的python实现
github上有一些开源的,在开源的基础上进行了些需修改。 本文数据及其代码下载页: http://download.csdn.net/download/a1b2c3d4123456/10015925#coding=utf-8import mathimport numpy as npimport pandas as pdfrom sklearn import preprocessingf
2017-10-11 14:56:32 1451
转载 强化学习概述--甄景贤
1、什么是强化学习(What is reinforcement learning?)Reinforcement learning 是机器学习里面的一个分支,特别善於控制一只能够在某个环境下 自主行动 的个体 (autonomous agent),透过和 环境 之间的互动,例如 sensory perception 和 rewards,而不断改进它的行为 。听到强化学习,你脑里应该浮现一只曱甴那样的小
2017-07-17 17:38:48 1530 1
转载 hadoop HDFS常用文件操作命令
命令基本格式:hadoop fs -cmd < args >1.lshadoop fs -ls /列出hdfs文件系统根目录下的目录和文件hadoop fs -ls -R /列出hdfs文件系统所有的目录和文件2.puthadoop fs -put < local file > < hdfs file >hdfs file的父目录一定要存在,否则命令不会执行hadoop fs -put < lo
2017-04-01 19:02:22 2451
转载 Python下调用json.dumps中文显示问题解决办法
在采集回来的网页内容要存储为TXT,因为数据结果是一个Dic的,所以将其换为Json。但是转换的过程中汉字变为了ascii编码格式了!通过help("json") 看到里面有一个配置信息<span style="font-family:Microsoft YaHei;font-size:18px;"> dumps(obj, skipkeys=False, ensure_ascii=True,
2017-02-22 12:04:58 1288
原创 idea配置maven并添加镜像配置
前提是安装好maven。1、打开maven存放文件夹找到 conf ->settings.xml 找到节点 把下面内容写入节点内 配置为阿里云的镜像<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/pub
2016-12-28 22:53:13 18408
原创 python 3的默认设置
由于官方已经停止更新了python2.7,现在必须专项python3,ubuntu中装了很多python版本,默认是2.7的,不能删除2.7的版本,以免发生错误,只需要改一下连接器即可。安装python3.4如果有的系统没有自带的3.4版本,需要安装一下sudo apt-get install python3然后把python的链接删掉sudo rm /usr/bin/python新建一个链接sud
2016-12-01 10:40:18 2280
原创 vim相关
不定期更新IDE配置 http://codingpy.com/article/vim-and-python-match-in-heaven/
2016-11-30 21:33:11 597
原创 linux下目录操作---进入、显示、复制、移动
linux下的目录就是找到某个文件或文件夹的路径。一般情况下的操作有进入指定的目录、打开指定目录下的文件夹、删除指定目录文件、在指定目录创建一个文件、移动目录文件等。进入到指定目录以/开头的是绝对目录;不以/开头的是相对目录,也就是在当前目录下的作为基准。cd /home/duola/file进入主目录下,duola用户的file目录。cd cd 默认是反正上一层目录。cd ..也是返回当前目录的上
2016-11-16 16:11:44 69809 5
原创 linux中的文件和文件夹的新建、查询、删除
新建文件夹使用的mkdir命令可以新建文件夹。mkdir filename这样就创建了一个叫做filename文件夹。新建一个文件新建的文件可以包括任何扩展名,.txt/.cpp/.csv 使用的是vi命令。vi a.txt这样就会打开一个文件,vim下进行编写后,保存,就可以生成一个名为a的txt文件。删除文件夹删除使用的是rm命令rm -rf filename这样就可以把叫做filename的文
2016-11-16 12:02:15 1972 1
转载 python 去除停用词 结巴分词
#coding:gbkimport jieba#stopwords = {}.fromkeys([ line.rstrip() for line in open('stopword.txt') ])stopwords = {}.fromkeys(['的', '附近'])segs = jieba.cut('北京附近的租房', cut_all=False)final = ''for seg
2016-10-27 10:42:35 22368 2
原创 xgboost 算法原理
1、xgboost是什么全称:eXtreme Gradient Boosting 作者:陈天奇(华盛顿大学博士) 基础:GBDT 所属:boosting迭代型、树类算法。 适用范围:分类、回归 优点:速度快、效果好、能处理大规模数据、支持多种语言、支 持自定义损失函数等等。 缺点:发布时间短(2014),工业领域应用较少,待检验2、基础知识,GBDTxgboost
2016-10-18 15:17:00 72962 1
原创 二叉树的面试题目总结
主要涉及:二叉树的遍历、路径和、翻转、镜像、子树、和链表转换1。二叉树的先序遍历 List<Integer> res=new ArrayList<Integer>(); public static List<Integer> preOrder(TreeNode root){ if(root==null) return res; res.add(root
2016-09-16 16:04:29 1117 2
原创 leetcode---64. Minimum Path Sum
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or right at any
2016-09-04 15:00:28 898
原创 leetcode----63. Unique Paths II
Follow up for “Unique Paths”:Now consider if some obstacles are added to the grids. How many unique paths would there be?An obstacle and empty space is marked as 1 and 0 respectively in the grid.For ex
2016-09-04 14:42:06 549
原创 leetcode---62. Unique Paths
A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach the botto
2016-09-04 14:35:57 630
原创 排序
数组的快速排序 nlogn 空间复杂度为log(n) public static int partion(int [] a,int from,int to){ if(a==null) return -1; int base=a[from]; while(from<to){ while(from<to&&a[to]
2016-09-01 21:54:01 726
原创 剑指offer ---java版本
面试题3 二维数组的查找 public static boolean find(int [][] a,int val){ if(a==null) return false; int rows=a.length; int colums=a[0].length; int i=0,j=colums-1; while(i
2016-08-30 10:26:29 2089
原创 二分查找的最全版本
package SearchTest;public class binarySearch { //不分先后的查找 public static int binarySearch0(int [] a,int left,int right,int val){ if(left>right||a==null) return -1; while(left<=righ
2016-08-24 20:29:41 714
原创 leetcode 151. Reverse Words in a String 字符串 翻转
Given an input string, reverse the string word by word.For example, Given s = “the sky is blue”, return “blue is sky the”.思路:按照空格分割后存到字符串数组里,然后从后向前遍历存储,需要注意前面的空格和后面的空格。 注意区分“”和“ ”的区别。package test;pu
2016-08-08 15:58:29 831
原创 机器学习和数据挖掘100问
前言:虽然说我的研究方向是数据挖掘,但是一直以来对整个机器学习和数据挖掘的东西没较为清晰的认识,估计有很多小白和新手和我有类似的问题吧,借此校招之际,对机器学习和数据挖掘领域的知识进行一定的汇总,这一篇主要提出问题,因为其中的每一个问题可能会需要很大精力去解答和理解,所以将会在后续询问高人或者查阅书籍论文之后将答案进行逐一汇总。问题按照模块进行提出,长期更新,望各位多多指点。**一、基本概念**
2016-08-08 14:07:35 1401
原创 leetcode 92. Reverse Linked List II 链表 部分反转
Reverse a linked list from position m to n. Do it in-place and in one-pass.For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4,return 1->4->3->2->5->NULL.Note: Given m, n satisfy the following co
2016-08-03 11:29:11 599
原创 梯度下降小结
梯度与最优化数学上的梯度是描述一个曲线或曲面沿着某一方向的变化的情况。计算方法就是求导数。 在机器学习领域为什么要使用梯度呢? 首先这个问题要追溯到最优化的问题上面,我们在求解一个拟合函数或者求解一个类别判别函数的过程中,会面临损失函数,以及如何让这个损失函数的问题。所以梯度下降就是让损失函数最小的过程最短。可以把损失函数看成是一个超平面,沿着各个方面的梯度下降就是考察的各个特征的变化。还有一点
2016-08-01 15:36:47 878
原创 java??List?LinkedList?ArrayList ??
1?List??List?????,??????,????List<Integer> lis=new List<>();???????????????ArrayList????????List?????????,????????????List??,??ArrayList??????????List<Integer> lis=new ArrayList<>();List<List<Integer>>
2016-08-01 14:59:02 651
转载 余弦距离、欧氏距离和杰卡德相似性度量的对比分析
1、余弦距离余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。向量,是多维空间中有方向的线段,如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近。而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角。余弦定理描述了三角形中任何一个夹角和三个边的关系。给定三角形的三条边,可以使用余弦定理求出三角形各个角的角度。假定三角形的三条边为a,b
2016-07-22 16:54:59 944
原创 集成学习算法总结----Boosting和Bagging
1、集成学习概述1.1 集成学习概述集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高。目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost、GBDT、XGBOOST、后者的代表算法主要是随机森林。1.2 集成学习的主要思想 集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求
2016-07-05 21:02:59 21188
原创 排序算法---堆排序
堆积排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。堆排序的排序思想: 利用大顶堆(小顶堆)堆顶记录的是最大关键字(最小关键字)这一特性,使得每次从无序中选择最大记录(最小记录)变得简单。1
2016-07-05 17:35:27 530
原创 数据挖掘与数据分析
数据挖掘与数据分析一、数据挖掘和数据分析概述数据挖掘和数据分析都是从数据中提取一些有价值的信息,二者有很多联系,但是二者的侧重点和实现手法有所区分。 数据挖掘和数据分析的不同之处: 1、在应用工具上,数据挖掘一般要通过自己的编程来实现需要掌握编程语言;而数据分析更多的是借助现有的分析工具进行。 2、在行业知识方面,数据分析要求对所从事的行业有比较深的了解和理解,并且能够将数据与自
2016-07-05 17:35:03 29322 5
原创 Android中的布局和控件的隐藏和触发显示
1、布局的隐藏和显示安卓开发中会遇到很多显示和隐藏的问题,有时候需要隐藏一部分布局,包括所有的布局格式(线性布局、相对布局、网格布局等),这里以LinearLayout的隐藏与显示为例进行展示说明。 首先在layout中的xml页面进行页面的设计: <LinearLayout android:layout_width="match_parent"
2016-07-05 11:21:59 20680 3
原创 java中的常用的输入方法
1、从控制台接收一个字符System.in.read();这个方法返回的是Unicode码,按下enter键结束,用System.in.read()时,我们在键盘上按下的任何一个键都会被当做是输入值,包括Enter键也会被当做是一个值!当我们按下Enter的时候,实际上发送两个键值:一个回车\t(13),一个是换行\n(10) 例子1: System.out.println(
2016-07-02 12:13:39 947
转载 Java中的值传递和引用传递
转自:http://www.cnblogs.com/clara/archive/2011/09/17/2179493.htmlJava中的值传递和引用传递当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的
2016-07-01 13:54:08 494
原创 位运算的常用操作总结
位运算是一个神奇的运算,可以很巧妙的解决一些难题,同时速度还非常快。下面将介绍位运算基本的概念,以及位运算的一些常用方法。1、位运算的基本概念图片来自谷歌。 这里需要注意的是,位运算的时候全部都是换算成二进制的,一般都是32位的长度。2、常用的位运算方法2.1 交换两个数 int x = 1, y = 2;
2016-07-01 10:43:55 1032
原创 java中String、StringBuffer、StringBuilder的总结
看了很多关于java的string的相关知识,这里做一个较为全面的总结,内容转自不同地方的博客,鉴于出处较多,就不一一列举了。java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。String 字符串常量 StringBuffer 字符串变量(线程安全) String
2016-06-30 11:10:53 1806
原创 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 529
原创 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 560
原创 机器学习---白话Logistic回归
1、Logisti回归的基本概念首先logistic回归是一个分类算法,大家不要被名称所诱惑,这一点非常重要!然后logistic回归属于是利用了一个叫做sigmoid函数的映射,简称S函数,S函数的定义如下: 函数图像是这样的: 分类的模型使用的是将上面的的S函数的分母的e的幂次换掉。然后直接判断
2016-06-28 16:16:36 1345
ACM程序设计
2016-11-16
Multi-View K-Means Clustering on Big Data
2016-04-06
图像可视化的综述+原文+译文
2015-10-18
如何进行机器学习算法的实验?
2015-10-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人