自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱在梦醒时分的博客

菜鸟也有梦想!

  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 LeetCode动态规划刷题记录(一)背包问题

最近在刷LeetCode上的动态规划题目,这里主要整理一下一些题目的做法,说到动态规划,最典型是的背包问题,让我们首先来解决背包问题。问题背景背包问题的背景是有一个空间有限的背包(设空间为W)和一堆物品,每个物品都有两个属性,一个是占据的空间记为w,另一个属性是物品的价值v,我们要解决的问题就是在有限的空间W内,将物品装入背包,并且使总价值尽可能的大。背包问题按大类分为三大类,一、01背包。二...

2019-07-28 22:45:11 7618 1

原创 二分查找进阶及应用

说到二分查找,很多人第一反应是挺简单的,然后分分钟写出来了以下代码:public static int BinarySearch01(int [] nums,int target ) { int left=0; int right=nums.length-1; while(left<=right) { int mid =left+(right-left)/2; i...

2019-07-24 22:42:42 250

原创 Java判断UTF-8串字符数量

前几天作业帮面试的一道编程题,题目要求,给定一个UTF-8编码的字符串(字符数组的形式),返回该字符串的字符数量。UTF-8编码介绍:UTF-8编码中一个字符的长度为1-6个字节,其中,该字符的长度在第一个字节(byte)的前1-6位有表示,具体如下:有了以上参考资料大体就有思路了,那就是遍历字符数组统计每个字符的长度,然后将i+字符长度-1,判断字符长度的时候,直接将byte与二进制的0b...

2019-07-14 02:23:43 1053

原创 [Matlab] matlab将三维数组转为二维数组

在使用matlab做实验时,我遇到一个问题是将一个303012的三维数组转化成3012的数组,采用平均值的方式,在y轴上取平均值。首先取平均值matrix = mean(matrix,1);然后size(matrix)发现维度为301*12,把脱狱的维度去掉可以使用matrix = squeeze(matrix);综上:具体实现代码为:matrix = squeeze(mean(matrix...

2019-07-11 16:24:17 16317

原创 剑指Offer刷题整理(51-66),Java版

题目来自牛客网51.构建乘积数组题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。思路:B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容求得,上三角,从下向上也是连乘。因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算出B[i...

2019-07-07 22:43:29 270

原创 剑指Offer刷题整理(41-50),Java版

题目来自牛客网41.和为S的连续正数序列题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!...

2019-07-07 22:11:53 273

原创 剑指Offer刷题整理(31-40),Java版

31.1~n中1出现的次数题目描述求出1 ~ 13的整数中1出现的次数,并算出100~ 1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:本题思路来自评论区:设N =...

2019-07-07 21:45:52 183

原创 剑指Offer刷题整理(21-30),Java版

题目来自牛客网21.栈的入栈出栈序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:新建一个栈来验证即可算法实现cla...

2019-07-07 20:13:22 231

原创 剑指Offer刷题整理(11-20),Java版

题目来自牛客网11.二进制中“1”的个数题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路:提到二进制首先想到的最基本的除二取余算法,但是这题没有这么简单,因为cpu执行乘除法的指令周期要长, 解决办法是位运算。位运算的指令周期较短。二进制位运算右移相当于除以2,左移相当于乘2。然后用将1与该二进制数进行与运算,即可统计出末位1的个数。但是要注意的一点是,负数的...

2019-07-07 17:01:47 261

原创 剑指Offer刷题整理(1-10),Java版

题目来自牛客网1.二维数组查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从右上角开始和从左下角开始本质上是一样的,都是忽略掉其中的一行或者一列,以右上角为例,记右上角元素为a[0][j],若要查找的值比a[0][j]小则j-1...

2019-07-07 16:24:01 238

原创 《机器学习实战》学习笔记九:支持向量机(SVM)

一、什么是支持向量机(SVM)?支持向量机(Support Vector Machine)听起就来是一个很难理解的概念,的确,刚开始听这一概念完全不知其是什么东西。在参考了网上的一些大神通俗的解释后,对于这一概念有了初步的认识。自己也很难想出比这更好的解释,在这里就直接引用知乎大神简之的解释了[1]:点击查看原文地址 大神以一个故事来说明这个问题:在很久以前的情人节,大侠要去救他的爱人,但魔...

2018-03-12 20:36:08 695

原创 《机器学习实战》学习笔记八:Logistics回归应用(预测病马死亡率)

学习了Logistics回归的理论,并且改进了梯度上升算法之后,这一节将算法应用到实例中去,即使用Logistics回归从疝气病症来预测病马的死亡率的问题。1 问题背景现有一个数据集中包含368个样本和28个特征。该数据集中包含了医院检测马疝病的一些指标,有的指标比较主观,有的指标难以测量,例如马的疼痛级别。另外需要说明的是,除了部分指标主观和难以测量外,该数据还存在一个问题,数据集中有3

2018-01-31 19:26:48 1579

原创 《机器学习实战》学习笔记七:Logistics回归(梯度上升法)

1 Logistics回归概念回归是指将一对数据拟合为一条直线的过程,而Logistics回归则是将回归用于分类,其主要思想为:根据现有的数据对分类边界线建立回归公式,依次为依据进行分类,在这里最关键的一步是寻找最佳的拟合参数,这一步将会用到一些最优化的方法,如梯度上升等。2 一些数学基础2.1 Sigmoid函数本文以二分类为例,说到二分类问题,我们首先想到的是0,1的问

2018-01-30 21:51:42 633

原创 Ubuntu下修改双系统启动顺序

今天装了双系统,开机总是先进Ubuntu的启动界面,然后再进Windows,在Windows下用easybcd都没能解决这个问题,很是头疼,于是我便试着找找能不能再Ubuntu下修改启动顺序,过程如下:第一步:Ubuntu下打开终端(ctrl+alt+t),输入sudo gedit /etc/default/grub, 在打开的文本中找到GRUB_DEFAULT = 0这一字段,讲后

2018-01-28 18:37:00 930

原创 手机通过usu共享给电脑网络(win10),电脑变卡的解决办法

有些时候电脑没网络,而手机流量充足,我们会选择用手机给电脑通过usb共享网络,最近发现win10系统的电脑,使用共享网络后,电脑会变得很卡,打开软件或者系统设置需要很久才弹出来,在网上查了查发现原因是驱动的问题,在这里我记录下解决这个问题的过程:第一步:打开设备管理器,具体方法时候我的电脑->右键属性->左边一栏点设备管理器,可见到下图:第二步:找到网络适配器中的usb

2018-01-28 18:19:55 27365 1

原创 《机器学习实战》学习笔记六:朴素贝叶斯的应用

有了前一节朴素贝叶斯分类文本的基础,这一节将进行两个实例应用:过滤垃圾邮件和从个人广告中获取区域倾向。实例一:过滤垃圾邮件由于邮件信息以文本的形式存放,我们首先要做的就是从切分文本,使用正则表达式将其拆分成词组,然后除去其中的空字符,并且将句首字母都转换为小写,完成准备数据的工作,就可以进行分类了。def textParse(bigString): import re

2018-01-26 21:36:23 346

原创 《机器学习实战》学习笔记五:朴素贝叶斯分类

1.贝叶斯决策理论 如图,在数据集中有两类数据,分布如下: 我们用p1(x,y)和p2(x,y)分别表示某一数据点在两类数据中的概率,那么对于一个新的数据点,可以用以下规则来判断它的类别: 若p1(x,y) > p2(x,y),则为类别1 若p1(x,y) 这就是贝叶斯决策的思想,即选择具有最高概率的决策。2.一些概率论基础 那么这个概率要如何计算呢?这里补充一些概率论的基础。

2018-01-25 21:05:53 328 1

原创 《机器学习实战》学习笔记四:使用Matplotlib注解绘制树形图

Matplotlib是python的一个绘图库,可以使用其注解功能来绘制图形。 1.使用文本注解绘制树节点import matplotlib.pyplot as pltdecisionNode = dict(boxstyle="sawtooth",fc="0.8")#定义文本框和箭头格式leafNode = dict(boxstyle="round4",fc="0.8")arrow

2018-01-24 21:08:57 919

原创 《机器学习实战》学习笔记三:决策树

1.信息增益 决策树应该是比较简单的概念了,其结构类似于二叉树,从根节点向下依次判断,直至叶子节点获得结果。对于基本结构不多说了,这里主要说一下和决策树相关的两个数学上的概念,即信息增益和香农熵。信息增益是指的以某一个特征对数据集划分前后数据集发生的变化,而香农熵则是度量这一变化的量。 香农熵的计算公式如下: 计算香农熵的代码:def calcShannonEnt(dataSet

2018-01-24 16:59:22 206

原创 《机器学习实战》学习笔记二:kNN算法实例 -- 手写体识别

kNN算法的一个简单的例子是手写体识别,问题的关键在于如何将数据转化为需要的格式,还有如何从文件名中解析出图像所在的分类。解决这两个问题之后就可以应用kNN算法进行识别了。 图像的数据是以32*32二进制矩阵的形式在文本中存放着(如图1所示),首先我们要的是把这些文本中的数据存放到数组中,这里做法是创建一个1*1024的数组,逐行读取文件的前32行的前32个字符,并将其存于数组中,到这里准备

2018-01-19 13:20:54 475

原创 《机器学习实战》学习笔记一:k-近邻算法(kNN)

k-近邻算法(以下简称kNN)是分类算法中比较简单的一种,KNN算法的一般流程为:(1)收集数据,如从文件中导入数据(2)准备数据,将数据转化为适合计算的格式,如矩阵的形式(3)分析数据(4)测试数据,计算分类的错误率(5)应用算法,给定输入,得到相应的输出,指出改数据属于哪一种分类。 kNN算法的过程如下:(1)计算数据集中各点与当前点(给定数据)之间的距离; (2)按照距离

2018-01-18 21:55:39 220

原创 简单选择排序

简单选择排序原理是从每次排序都选择出剩余元素中最小或最大的,然后与前面的第一层循环i的当前位置元素进行交换,因此设置了一个min和minj变量来记录最小值和最小值的下标。#include<stdio.h>void sel(int a[],int n){ int i,j,minj,min,temp; for(i=0; i<n; i++) { min=a[i]

2016-10-14 23:56:03 247

原创 基于C/S模式的简单聊天程序(服务器篇)

上篇介绍了客户端的写法,这一篇介绍服务器的写法。服务器的功能是:接收来自客户端的消息,然后将消息转发给当前连接的所有用户。这里一个困扰我许久的地方是如何存储所有用户的地址(套接字),找了许久我找到了一种变长数组的数据结构Vector,用size()来获取长度,用add()来添加元素,这样就容易多了,解决了服务器最大的问题。服务器我定义了一个启动服务器的按钮,通过此按钮可以启动服务器的监听线程,

2015-12-27 15:17:32 10199 6

原创 基于C/S模式的简单聊天程序(客户端篇)

经过这几天对java的学习,用java做了这个计算机网络的课程设计,基于C/S模式的简单聊天程序,此篇文章介绍一些客户端的一些东西。先讲一讲此聊天程序的基本原理,客户端发送消息至服务器,服务器收到消息之后将其转发给连接服务器的所有客户端,来自客户端的消息中包含发件人的名字。客户端的主要功能是发送消息和接收消息,客户端设置好了端口和服务器地址,并创立客户端自己的套接字,用作和服务器通信的一个标识

2015-12-27 14:45:14 14788 19

原创 UDP发送和接收程序

利用这几天所学的知识做了一个UDP发送接收工具,也是我做的第一个界面的程序把,其中利用了多线程,套接字,界面布局,事件处理等知识,通过做这个程序对面向对象的概念更近一步了解,包括构造函数,继承,接口等概念有了更深的认识,对于多线程也有了了解,也为接下来的课程设计(CS模式简单聊天室)做了铺垫。唯一不足的是异常处理这块做的还不够完善,包括弹窗什么的,接下来在课程设计中来注重这一点。 先上一张图来

2015-12-16 19:02:52 1923

原创 GUI线程

界面编程我又新学一种方式:一个类可以对多个接口实现,并且继承另外一个类,这样都写在一个类里可以减少类之间调用的错误,而且直接调用更方便 书上一个字母游戏的例子让我印象深刻 包括其中用标签作输出,我特地查了一些他的构造函数和一些用法: 1、JLabel常用的一些构造函数 JLabel() 创建无图像并且其标题为空字符串的 JLabel。 JLabel(Ico

2015-12-16 11:07:38 1072

原创 线程的同步和协调

线程同步

2015-12-15 21:46:32 505

原创 多线程的创建

用Runnable 接口创建多线程程序,先对其以方法来实现,后用Thread来创建线程,用go类来调用并执行线程,然后在主类中实例化,并调用其中的gogo方法()来执行(go方法我只是对线程可否在子类中被Mian类调用有些疑问,证明是可以的)。public class CreatThread { public static void main(String args[]) { //主线程

2015-12-15 21:34:26 305

计算机网络课件(谢希仁 第六版)

计算机网络课件(第六版)谢希仁

2015-12-16

java2实用教程课件和代码

java课件和代码,Java2实用教程 第四版 耿祥义 张跃平

2015-12-16

空空如也

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

TA关注的人

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