自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mathor的博客

更多文章请移步我的blog https://wmathor.com

  • 博客(39)
  • 资源 (7)
  • 论坛 (2)
  • 收藏
  • 关注

原创 单调栈

用法给你一个数组,要求你找到数组中每个元素左边第一个比他大的数和右边第一个比它大的数,举个例子,数组[3,5,2,1,6],3左边比他大的没有,右边比他大的是5;5左边比它大的没有,右边比他大的是6;2左边比它大的是5,右边比他大的是6;1左边比他大的是2,右边比他大的是6;6左边比他大的没有,右边比它大的没有单调栈应用上面的问题,直接遍历可以,但是如果利用单调栈来做,可以保证时间复杂度为O...

2018-11-06 22:48:54 121

原创 LeetCode84.柱状图中最大的矩形

题目链接:LeetCode84题解单调栈板子题,创建一个单调递增栈(栈底到栈顶是递增的),栈内存放的数组下标,遍历数组,将下标存进栈内,以样例来说首先栈空,0直接进栈;然后因为nums[stack.peek()] > nums[1],所以0出栈了,同时记录以num[0]为高的矩形的面积,当前遍历到的数组下标为i,此时i是1,k等于0出站后,栈顶元素的下标,k= stack.isEmp...

2018-11-06 22:48:28 182

原创 LeetCode85. 最大矩形

题目链接:LeetCode85题解这是LeetCode84题的一个扩展。这道题做法和84很类似,首先对第一行求一个最大体积,然后到第二行,将第一行的值累加到第二行上,但是有一个前提条件,如果第二行某一列的值是0,那就直接是0了,比方说第二行累加后的值为2,0,2,1,1,然后对这个值求一次最大体积。第三行累加后的值为3,1,3,2,2,第四行累加后的值为4,0,0,3,0代码class ...

2018-11-06 22:48:11 609

原创 LeetCode42. 接雨水

题目链接:LeetCode42有人说用贪心,我觉得这是一个单调栈的板子题,构建一个单调递减栈(栈底到栈顶是递减的),要想能够收集雨水,栈中至少要两个数字,才能形成一个坑,先pop一个数字,这个数字就是最低值,再peek一个数字,peek的数字和遍历的到的值进行比较,较小的值减去最低值的高度,得出的这个高度就是能蓄水的高度,底就是做右边界的值相减class Solution { pub...

2018-11-06 22:47:54 468

原创 保卫方案(京东笔试题)

Question战争游戏的至关重要环节就要到来了,这次的结果将决定王国的生死存亡,小B负责首都的防卫工作。首都位于一个四面环山的盆地中,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设置一个观察哨,日夜不停的瞭望周围发生的情况。 一旦发生外地入侵事件,山顶上的岗哨将点燃烽烟,若两个岗哨所在的山峰之间没有更高的山峰遮挡且两者之间有相连通路,则岗哨可以观察到另一个山峰上的烽烟是否点燃。...

2018-11-06 22:47:34 289

原创 Morris遍历

Morris算法遍历一棵二叉树,时间复杂度O(n),但是空间复杂度却只用神奇的O(1),下面说一下Morris遍历的流程,首先规定来到的当前结点即为cur如果cur无左孩子(cur.left = null),cur向右移动(cur = cur.right)如果cur有左孩子(cur.left != null),找到cur左子树上最右的结点,记为mostRight如果mostRight无右...

2018-11-06 22:47:15 120

原创 图的常见算法

图的表示方式图是由一系列点和边的集合构成的,一般有邻接矩阵和邻接表两种表示方式,c/c++可以看我的这篇文章:搜索(1)这篇文章主要讲java语言中图的相关算法。首先看一下图结构的代码:class Node {//点集 public int value; public int in;//入度 public int out;//出度 public ArrayList<Node&g...

2018-11-06 22:46:53 800

原创 LeetCode218. 天际线问题

题目链接:LeetCode218题解如果按照一个矩形一个矩形处理会非常麻烦,我们把这些矩形拆成两个点,一个左上角顶点,一个右上角顶点。将所有顶点按照横坐标进行排序然后开始遍历,遍历时通过一个堆来得知当前图形的最高位置,堆顶是所有顶点中最高的点,只要这个点没被移出堆,就说明这个最高的矩形还没结束。对于左顶点,我们将其加入堆中,对于右顶点,我们找出堆中相应的最顶点,然后移出左顶点,同时也意味着这...

2018-11-06 22:46:33 794

原创 Xor(滴滴笔试题)

题目描述给出一个数组,问最多有多少个不重叠的非空区间,使得每个区间内的数字的xor都等于0。示例输入 1 2 3 0 3 2 1 0输出 4思路DP,假设数组最后一个数的下标是i,并且数组存在一个最优划分,使得划分的子数组个数最多,那么i有两种情况,第一,i所在的划分区间异或为0;第二,i所在的划分区间,异或不为0。对于第一种情况dp[i] = dp[i-1]的,对于第二种情况,假设i...

2018-11-06 22:46:01 445

原创 第一章 计算机系统概述

基础知识现代计算机都是冯诺依曼计算机,共由五大件组成:运算器、存储器、控制器,输入设备、输出设备程序运行流程首先有些英文缩写必须要了解:ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器MQ:Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器ALU:Arithmetic Log...

2018-11-06 14:00:04 113

原创 数据链路层(一)

数据发送模型数据链路和帧链路(Link)是指的从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。数据链路(Data Link)则是另一个概念,这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。数据链路层把网络层交下来的数据封装成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在因特网中...

2018-11-03 21:24:42 213

原创 树形DP

从五道题来看树形DP1.求树的最大值和最小值假设现在有一棵树,我只要求出每个结点作为头节点对应子树的最大值和最小值,那么最终答案一定在其中,因此每个结点都有两个信息,最大值和最小值,我把这个信息封装为一个结构体,带入递归中,就能求出最终答案,最大值就等于当前结点左子树的最大值和右子树的最大值和当前结点的值三者中最大的那一个,最小值也是三者中最小的那一个。public class Main {...

2018-11-03 21:24:34 270

原创 布局管理器

Java语言中,提供了布局管理器类的对象管理Component在Container中的布局,不必直接设置Component位置和大小每个Container都有一个布局管理器对象,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container的setLayout方法改变其布局管理器对象AWT提供了5种布局管理器类:FlowLayoutBorde...

2018-11-03 21:24:25 1086

原创 事件模型

ActionEvent事件模型如何理解呢,举个例子,你老婆出门了,让你在家看孩子,难道你每过一分钟就去看一次孩子吗,对于计算机来说,我做一个按钮,难道就一直监听这个按钮使用没有吗,这样的话对于资源消耗太大了,所以最好的办法就是在孩子手上系个铃铛,孩子一有动静铃铛就响,你过去看就行了。反映到计算机上,你可以把某个代码写好,然后告诉某个对象比方说button,当button一执行,就让他自动调用你...

2018-11-03 21:24:02 625

原创 TextField和Graphics类

TextField类java.awt.TextField类用来创建文本框对象TextField有如下常用方法TextField()TextField(int columns)TextField(String text)TextField(String text,int columns)void setText(String t)String getText()void set...

2018-11-03 21:23:25 225

原创 RegularExpressions——正则表达式

用途字符串匹配(字符匹配)字符串查找字符串替换例如:IP地址是否正确从网页中揪出email地址从网页中揪出链接等类java.lang.Stringjava.util.regex.Patternjava.util.regex.Matcher初识正则表达式import java.util.regex.*;public class TestReg { ...

2018-11-03 21:22:57 572

原创 位与进制

位运算简介这里我假设读者有二进制的思维,知道(3)10=(011)2(3)_{10}=(011)_2(3)10​=(011)2​将十进制转换为二进制的方法&(与)、|(或)、^(异或)、~(非/取反)&gt>和<<运算符将二进制位进行右移或者左移操作&gt&gt&gt运算符将用0填充高位;>>运算符用符号位填充高位,没...

2018-11-03 21:22:32 552

原创 科学计算库Numpy

genfromtxt函数import numpytmp = numpy.genfromtxt("1.txt",delimiter=",",dtype=str)print (type(tmp))print (tmp)print (help(numpy.genfromtxt))genfromtxt函数里穿了三个参数,分别是 要打开的文档名称,分隔符,以什么类型存储打印结果:第一行...

2018-11-03 21:22:04 201

原创 堆及其相关应用

什么是堆?提到堆就不得不说到二叉树这个结构,堆就是一颗完全二叉树,什么叫完全二叉树,用一句话来概括就是:设二叉树的深度为h,除第h层外,其它各层的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树,举几个例子:堆分两种,一种叫大根堆,一种叫小根堆。大根堆就是在堆结构中,任意一棵子树的根节点一定是最大值,举个例子:看上图最左边的那颗树,他的子树有64323、643、...

2018-11-03 21:21:34 147

原创 比较器Comparator

Comparator接口java中有内置的排序,Arrays.sort(),现在我有一个Student类,类中三个成员变量name,id,age,我现在想以age作为参考进行升序排序,应该如何做,很简单,只需要自己定义一个类实现Comparator接口即可import java.util.*;class Student { String name; int id,age; Studen...

2018-11-03 21:21:13 86

原创 给定一个数组,求子数组的最大异或和

直接说这道题时间复杂度O(n)的做法,构建前缀树。假设将0-0、0-1、0-2、…、0-i-1的异或结果全部装在前缀树中,那么以i结尾的最大异或和就是0到某一位置x的异或结果和i异或结果最大,举个例子,假设x是3,0-3的异或结果和i进行异或得到的结果最大,那么就说明4-i的异或结果是最大的。但是如何知道x到底是多少,换句话说,0-x中哪个值和i进行异或得到的结果最大。其实这个也比较好想,假设i...

2018-11-02 13:10:02 776

原创 从暴力递归到动态规划

动态规划没有那么难,但是很多老师在讲课的过程中讲的并不好,由此写下一篇文章记录学习过程1.题目链接:LeetCode518从暴力递归开始暴力递归就是尝试,这道题比较简单,从coins[0]开始尝试,coins[0]选0个,那么用剩下的coins[1…n]凑出amount的数量为a;coins[0]选1个,那么用剩下的coins[1…n]凑出amount-coins[0]的数量为b;coin...

2018-11-02 13:09:18 194

原创 子数组累加和为aim(小于等于aim)的三个问题

子数组累加和为aim(小于等于aim)的三个问题累加和等于aim的最长子数组的长度(数组可正可负可零)累加和等于aim的最长子数组的长度(数组只有正数)累加和小于等于aim的最长子数组的长度(数组可正可负可零)累加和等于aim的最长子数组的长度(数组可+,-,0)这道题我另有文章讲解了,这里就不多说了累加和等于aim的最长子数组的长度(数组只有正数)这个和上面唯一的不同就是数组中...

2018-11-02 13:08:54 186

原创 floyd算法

floydfloyd算法解决的问题是在图中找到从i号结点到j号结点最短路径值(边的权值)的问题,核心代码就下面四行for(int k = 0;k < n;k++) for(int i = 0;i < n;i++) for(int j = 0;j < n;j++) dp[i][j] = Math.min(dp[i][j],dp[i...

2018-11-02 13:08:33 1084

原创 莫队算法

概述莫队算法是由莫涛提出的算法,可以解决一类离线区间询问问题,适用性极为广泛。同时将其加以扩展,便能轻松处理树上路径询问以及支持修改操作。例题Description:有n个数字,给出k,以及m个查询。每次查询的格式是L,R,求L~R(左闭右闭)这个区间内数字的出现次数刚好是k的数字种数。Example input:5 2 31 2 3 2 21 22 41 5Example ...

2018-11-02 13:08:10 91

原创 CodeForces E. XOR and Favorite Number(Div.2)

题目链接:E. XOR and Favorite Number题解一个莫队的基础题,题目要求[L,R]里面有多少对子区间异或值为k,记录一下前缀异或和arr,因为xx=0,现在我们要求区间[L,R]的异或和值,用arr数组表示就是arr[L-1]arr[R]=k,或者说arr[R]^k=arr[L-1]import java.io.BufferedInputStream;import j...

2018-11-02 13:07:48 70

原创 ST算法与LCA

RMQ问题RMQ(Range Minimum/Maximum Query),即区间最值查询。对于长度为n的数列arr,回答若干询问Q(i,j),返回数列arr中下标在i,j之间的最大/小值。如果只有一次询问,那一遍for就可以搞定,但是如果有多次询问就无法在很快的时间处理出来。ST算法ST算法是一个在线算法,它可以在O(nlogn)时间内进行预处理,然后在O(1)的时间内回答每个查询,假设现...

2018-11-02 13:07:24 73 1

原创 [kuangbin带你飞]专题一 简单搜索

A-棋盘问题水题,dfs枚举行和放了第几个就行了import java.util.Scanner;public class Main { static int n,k,ans; static int[][] map; static boolean[] vis; static void dfs(int row,int idx) {//row行,已经放了idx个 if(idx ==...

2018-11-02 13:07:02 149

原创 Dancing Links算法

Dancing Links略述Dancing Links算法主要用于解决精确覆盖问题,精确覆盖问题就的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得每个集合中每一列恰好只包含一个1。例如下面的矩阵,我们将改矩阵命名为矩阵1如何利用给定的矩阵求出相应行的集合呢,采用回溯法。假定选择第一行,如下所示如上图所示,红色那一行是选中的行,这一行有3个1,分别是第3,5,6列。由于这...

2018-11-02 13:06:19 382

原创 request.getPramamter()的用法

表单<form action = "" method = "">actionaction:目标地址,把请求交给谁处理;action可以不设置,也可以是空字符串(提交给自己处理)methodmethod: get | post,默认是getget和post的区别get:参数比较小用get,要取服务器数据post:向服务器提交数据get会把参数显示在地址栏,post不...

2018-11-01 19:37:46 311

原创 LeetCode3. 无重复字符的最长子串

题目链接:LeetCode3题解首先定义一个Map<Character,Integer>用来保存当前字符最后一次出现的下标位置。再定义一个pre数组,用来保存以每一个字符为结尾的最长无重复字符的子串。接下来可以这么想,假设遍历到了下标i,i位置对应的字符为c,第一种情况,如果c从来没有在Map中出现过,并且i不为0(也就是说c不为首字符),那么per[i] = pre[i - ...

2018-11-01 19:37:22 60

原创 “达观杯”文本智能处理挑战赛

1.比赛地址及数据来源"达观杯"文本智能挑战赛2.代码及解析"""@简介:tfidf特征/ SVM模型@成绩: 0.77"""#导入所需要的软件包import pandas as pdfrom sklearn.svm import LinearSVCfrom sklearn.feature_extraction.text import TfidfVectorizerprin...

2018-11-01 19:36:58 107

原创 response.sendRedirect()的用法

sendRedirect()response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。下面我将创建四个页面,首先是sex.jsp,有一个下拉列表和提交按钮确定,选择“男”,就跳转到male.jsp,选择“女”就...

2018-11-01 19:36:16 76156 1

原创 jsp文件下载模板

download.jsp<%@page import="java.io.*"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.g

2018-11-01 19:34:52 1108

原创 Cookie读写操作

Cookie浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息。cookies是一种WEB服务器通过浏...

2018-11-01 19:34:32 363

原创 小和问题

描述在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例子[1,3,4,2,5]1左边比1小的数:没有3左边比3小的数:14左边比4小的数:1,32左边比2小的数:15左边比5小的数:1,3,4,2所以小和为1+1+3+1+1+3+4+2=16解题思路如果直接用两层for循环扫,时间复杂度是O(n2)O(n^2)O(n2),但是可以通过归...

2018-11-01 19:34:10 1363

原创 JDBC

准备工具去网上下载MySQL和Navicat,这里给个我们老师的网盘,里面有相关工具MySQLMySQL的教程可以看我的这篇MySQL数据库入门学习创建数据库要想通过java连接数据库,首先通过Navicat工具连接MySQL,然后创建数据库jsp,再创建一个表单user,表单里的字段以及相应的属性见下图随便往里面添加一些数据JDBCJava连接数据库分四步:1.加载驱动类、2...

2018-11-01 19:33:30 89

原创 存储器

存储器分类1.按存储介质分类(1)半导体存储器 TTL、MOS (易失)(2)磁表面存储器 磁头、载磁体(非易失)(3)磁芯存储器 硬磁材料、环状元件(非易失)2.按存取方式分类(1)存取时间与物理地址无关(随机访问)随机存储器 可读可写只读存储器 只读(2)存取时间与物理地址有关(串行访问)顺序存取存储器 磁带直接存取存储器 磁盘3.按在计算机中的作用分类存储...

2018-11-01 19:32:48 219

原创 漏洞:弱口令、爆破

成因弱口令没有严格和准确的定义,通常认为容易被别人(它们有可能对你很了解)猜测或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如”123”、”abc”等,因为这样的口令很容易被别人破解。通过爆破工具就可以很容易破解用户的弱口令。分类普通型普通型弱口令就是常见的密码,比如,目前网络上也有人特地整理了常用的弱口令(Top 100):123456 a123456 1...

2018-11-01 19:32:02 11194

基于MFC的云手机销售系统

有源码,下载之后将debug文件夹里的txt文本放至D盘跟目录下即可开始运行,百分百可运行,学生课程设计,毕业设计不二之选

2025-05-07

DDOS 天降激光炮图像界面版

天降激光炮DDOS,有界面

2018-10-29

MFC制作的计算器

使用MFC制作一个个人简易计算器,新手刚入门的都能理解,运行直接使用

2017-12-02

Java实现算术表达式词法分析程序

Java实现算术表达式词法分析程序,更多详情可以查看博客wmathor.com

2018-11-10

2017年第八届蓝桥杯决赛真题

Java,C/C++,ABC组都有,绝对全,2积分很便宜了,快下吧

2018-04-21

Java实现编译原理DFA图转换

给定算术表达式的DFA图,利用Java语言构建Trie树,实现对输入文法的判断

2018-11-10

空空如也

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

TA关注的人 TA的粉丝

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