自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 收藏
  • 关注

转载 debian “更换介质:请把标有…… DVD 的盘片插入驱动器“/media/cdrom/”再按回车键“ 解决方法

debian “更换介质:请把标有…… DVD 的盘片插入驱动器“/media/cdrom/”再按回车键“ 解决方法在新安装的debian后,有时候,在通过apt-get install 安装软件的时候,会出现:“更换介质:请把标有“Debian GNU/Linux 7.1.0 Wheezy - Official amd64 DVD Binary-1 20130615-23:06”的盘片插入驱动器...

2018-06-06 13:54:47 7412

原创 面试题21: 二维数组搜索

题目: 设计一个算法对 m*n 矩阵进行搜索,这个矩阵拥有如下属性.    1)每行的数都是从左到右排序好的.    2)每行的首数大于上行的尾数.其实这题就是用二分查找算法,二分查找一般是在一维数组上进行搜索,解决这道题的关键就是如何将二维数组映射成一维数组.映射关系为: k=i*n+j,j<n,k为在一维数组的中的下标值,i,j分别为二维数组中的行和列.根据前面的可以推导出i=k/n,j...

2018-05-19 15:45:54 315

原创 面试题20: 三角形

题目: 给定一个正整数n,产生Pascal三角形的前n行.代码实现:package mainimport "fmt"var a [100][100] intfunc init() { for i := 0;i < 100;i++ { a[i][0] = 1 for j := 1;j <= i;j++ { a[i][j] = a[i - 1][j - 1] +...

2018-05-19 15:14:23 444

原创 面试题19: 合并有序数组

题目: 给定两个有序数组A和B,把B合并到A里,保持结构有序.假设A有足够的空间容纳B的元素.初始时,A和B的元素各有m个和n个.分析: 这题可以这样来,从A和B的末尾向前移动,进行比较,将比较大的值放到A中下标为len(A)+len(B)-1的地方(假设两个序列是从小到大排列的),之后比较大的值的序列往前一个,然后再比较,放到len(A)+len(B)-2的地方,重复前面的操作,直到两个序列合并...

2018-05-19 15:03:33 407

原创 面试题18: 首个正数

题目: 给定一个无序整型数组,找出第一个不在数组里的正整数.要求时间复杂度O(n),空间复杂度为O(l).举例:     输入数组{5,3,-1,1},返回2代码实现:package mainimport "fmt"// 解法1,使用哈希思想,空间复杂度为O(n)func hxqj(a []int) int { m := make(map[int]bool) for _, v := ...

2018-05-18 09:33:11 185

原创 面试题17: 旋转数组搜索

题目: 给定一个有序数组的旋转和一个目标值,返回目标值在该数组的下标,如果不存在,则返回-1.假设该数组没有重复值.代码实现:使用二分查找package mainimport "fmt"func Min(a, b int) int { if a > b { return b } return a}func searchRotatedArray(A []int, tar...

2018-05-17 14:23:41 511 1

原创 面试题16: 旋转数组最小值

题目: 输入一个递增排序的一个旋转,输出旋转数组的最小值.分析:第一步:要知道什么是旋转数组?其实就是将一个有序的数组,前n个直接丢到最后面.    根据上面什么是旋转数组,我们可以知道旋转数组会有这样一个规律,就是这个一个递增排序数组的一个旋转,可以看成两个递增数组的组合.有一个核心的地方,就是左边序列的所有值会大于等于右边的值,那么我们就可以使用二分查找.第二步:使用二分查找,中间的要么在第一...

2018-05-17 13:18:58 140

原创 面试题15: 两数组中值

两个有序数组A和B,分别拥有m和n的长度,求其合并后的值

2018-05-17 08:32:45 178

原创 面试题14: 两数组第K个值

题目: 两个有序数组A和B,分别拥有m和n的长度,求其合并后的第k个值.代码实现:// 二分归并排序func binaryMerge(arr1, arr2 []int) interface{} { i, j, la1, la2, temp := 0, 0, len(arr1), len(arr2), 0 var ms []int for i < la1 && j &...

2018-05-16 11:27:36 175

原创 面试题10:数位重组

题目:给定两个数组表示的整数,比如x = 1234={1,2,3,4},y=2410={2,4,1,0},返回第一个整数的重组后的值最接近第二个整数,并且要大于第二个整数。假设两个整数的数组大小相同,并且肯定能够找到符合答案的数,例如输入{1,2,3,4},{2,4,1,0},返回{2,4,1,3}。package mainimport ( "fmt")func getClose...

2018-05-12 19:49:16 412

原创 面试题9:数组配对

题目:给定N个整数,N为偶数,是否能找到N/2对,使得每队和都能被k整除。注意:每个元素只能出现在一个配对中。观察:     如果某个数能被k整除,那么该数除以k的余数为零。假设a和b之后能被k整除,即(a+b)%k=0,如果a%b=z,那么当z不等于0时,b%k=k-z;当z等于时,b%k=0。通过上面的推导,我们需要记录这个数组除以k之后的余数情况。然后从余数里找出配对。    使用额外一个数...

2018-05-08 09:05:17 591

原创 面试题8:合并区间

题目:给定一个区间集合,合并里面重叠区间;并返回新的不含重叠区间的集合。例如,输入:[1,5],[6,10],[4,6],[15,20]。输出:[1,10],[15,20]。package mainimport (    "fmt"    "sort")type Interval struct {    start int    end int}type PointSlice []Pointf...

2018-05-08 08:28:12 542

原创 面试题7:插入区间

题目:给定一个没有叠加的区间序列,现插入一个新的区间到该序列中,要求维持没有重叠的情况。假设该系列存放的区间有序的,区间定义如题目“重叠区间个数”。举例:    假定我们已有两个不重叠而且排好序的区间:[1,5],[6,10],现插入一个新的区间[4,6],那么最后结果是[1,10]。代码实现:package mainimport (    "fmt")type Interval struct {...

2018-05-07 20:37:15 173

原创 面试题6:重叠区间个数

题目:给定多个可能重叠的区间,找出重叠区间的个数。举例    输入:[1,5],[10,15],[5,10],[20,30]    输出:3解法一:常规解法,就是我们一上来,最先想到的方法就是使用暴力破解,直接扫描,先第一个区间开始,看这个区间是不是在后面其他区间里面,两两区间判断是否重叠的方式,用一个数组存放区间是否存在重叠,如果两个区间重叠,比如第一个区间和第五个区间重叠,则把数组下标0,4这...

2018-05-07 17:14:45 2918

原创 面试题5:最大下标距离

题目:给定一个整型数组A,找出最大下标距离j-i,当且仅当 A[i]<A[j]和i<j书中给出的思路:思路一:常规我们最直观想到的解决方法是(1)i=0,j=end(end为最后下标所在位置),max=0(2)如果A[i]<A[j],j-i>max,则max=j-i(3)i++,j=end(4)重复第二、第三步骤,直到i==j这种算法的时间复杂度是 1+2+...+n-1 ...

2018-05-05 22:59:31 514

原创 面试题4:数组旋转

题目:返回将一维数组向右旋转k个位置的结果。比如,一维数组{1,2,3,4,5},k=2时,返回结果时{4,5,1,2,3}。要求常数级空间复杂度,允许修改原来数组。书中给出的思路:    如果允许额外分配线性空间,那么可以错位复制原有数组的元素。如果允许修改原有数组,那么我们可以通过三次反转数组来实现数组旋转,不需要申请额外空间,并且每次反转时间为O(n),从而实现线性的时间复杂度和常数级的空间...

2018-05-05 21:20:45 188

原创 面试题3:两数之和

题目:设计一个类,包含如下两个成员函数:    Save(int input)    插入一个整数到一个整数集合里,整数集中可以存在相同值。    Test(int target)    检验是否存在两个数和为输入值。如果存在这两个数,则返回true,否则返回false。书中给出的解析:这题相比上一题,只要把<值,下标>改成<值,个数>,第一次遍历将数组存到哈希表里面;第二...

2018-05-05 20:19:32 285

原创 面试题2:两数之和 2

题目:给定一个整型的数组,找出其中的两个数使其和为某个指定的值,并返回这两个数的下标(数组下标是从0开始)。假设数组元素的值各不相同,则要求时间复杂度为O(n),n为数组的长度。书中给出的核心思想:利用哈希函数,因为题意给出的是数组元素的值各不相同,所以第一次可以以键值<value,index>方式存入哈希表中;第二次扫描的时候,检查这个target与当前值的差值是否在哈希表中,且这个...

2018-05-05 16:22:20 181

原创 面试题1:两数之和 1

题目:给定一个整型数组,能否找到找出其中的两个数使其和为某个指定的值?(这个数组是无序的)直接实现(暴力解决):// 暴力破解,O(n^2)的时间复杂度func hasSum(arr []int, target int) bool { length := len(arr) for i := 0;i < length;i += 1 { for j := i + 1;j < le...

2018-05-05 16:01:44 163

转载 Go语言中的构造函数

1、构造函数定义 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。 而golang没有相关的构造函数定义,只能通过new来创建构造函数。 2、构造函数声明 声明一个struct结构: 声明一个全局函数,返回*s...

2018-04-21 19:42:25 2046

转载 ubuntu如何完全卸载Java

1、 移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ): (1) apt-get update (2) apt-cache search java | awk '{print($1)}' | gre...

2018-04-13 21:24:01 3145

原创 ubuntu中下载.tar.gz 安装包添加到桌面启动

第一步:解压tar.gz文件    sudo tar -xzf tar.gz文件 解压之后的路径第二步:创建全局变量     sudo ln -s 软件的绝对路径 /usr/bin/软件名第三步:添加启动器应用图标,也就是可以从启动器快速启动,执行    vim /usr/share/applications/软件名.desktop并添加如下内容[Desktop Entry]Encoding=UT...

2018-04-13 12:44:02 1650

转载 ubuntu 安装lamp环境

基本设置1.配置网络环境管理员给分配了一个静态IP,所以还需要进一步配置网络环境配置DNS:右上角网络连接->编辑链接->有线连接1->IPv4设置->DNS服务器:202.112.80.106->保存登陆网关:对于校园网用户来说,登陆网关才能访问外网测试: ping www.baidu.com2.设置root密码sudo passwd切换到root用户:su 或 s...

2018-04-13 10:35:59 200

转载 中序表达式转后缀表达式

对于一个算术表达式我们的一般写法是这样的(3 + 4) × 5 - 6这种写法是中序表达式 而后序表达式则是将运算符放在操作数的后面,如3 4 + 5 × 6 -可以看出后序表达式中没有括号, 只表达了计算的顺序, 而这个顺序恰好就是计算器中的一般计算顺序。运用后缀表达式进行计算的具体做法:建立一个栈S 。从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运...

2018-04-12 21:40:37 470

转载 Mware Workstation 与 Device/Credential Guard 不兼容.

解决办法   禁用hyper版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hangyejiadao/article/details/53468687

2018-04-11 08:23:21 1426

原创 archive/tar包

        Go标准库中的tar包实现了tar格式压缩文件的存取。本包目标是覆盖大多数tar的变种,包括GNU和BSD生成的tar文件。前面一句是go标准库中所说,其实就是可以使用这个包,然后可以在windows,linux,mac,unix系统上运行,达到不需要去知道不同操作系统的tar文件底层实现而可以跨平台使用。接下来学习这个标准库的使用:一、首先是这个包里面的常量[html] view...

2018-04-08 21:03:43 1979

原创 DHCP协议

DHCP协议采用UDP作为传输协议,DHCP服务器端使用67号端口,DHCP客户端使用68号端口接收来自DHCP服务器端的回应应答消息。1、DHCP Client以广播的方式发出DHCP Discover报文。2、所有的DHCP Server都能够接收来自DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP ...

2018-04-05 04:02:41 752

原创 堆排序

在理解堆排序前,先理解下什么是堆?堆:所谓的堆就是一颗完全二叉树的每个节点都不大于子节点。完全二叉树:二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。堆排序的核心思想:(1)先将数据排序成一个堆(2)输出堆顶(3)将最后一个节点(最低层,最右边)放入堆顶(4)调整使之成为一个堆(5)重复 (2)~(4) ...

2018-04-05 03:11:03 129

原创 插入排序

算法原理:插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法步骤:1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素带最后一个元素当成是未排序序列。2)从头到尾依次扫描未排序系列,将扫描到的每一个元素插入到有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素想等,则将待插入元素插入到相等元素的后...

2018-04-05 01:56:36 151

转载 基数排序

(一)基数排序的思想:    把待排序的整数按位分,分为个位,十位.....从小到大依次将位数进行排序。    实际上分为两个过程:分配和收集。    分配:从个位开始,按位数从小到大把数据排好,分别放进0--9这10个桶中;    收集:依次将0-9桶中的数据放进数组中    重复这两个过程直到最高位(二)过程:比如现在要排序  {400,31,53,72,6,29}       首先按个位的大...

2018-04-05 01:54:22 201

转载 桶排序

桶排序简单入门篇^-^在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同学们的分数按照从高到低排序。小哼的班上只有5个同学,...

2018-04-05 01:36:08 184

转载 拓扑排序(Topological Sorting)

一、什么是拓扑排序在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次。若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说。例如,下面这个图: ...

2018-04-05 01:22:35 200

原创 值类型和引用类型深入理解

1、值类型(ValueType)    值类型包括:数据类型、结构体、bool型、用户定义的结构体、枚举、可空类型    值类型的变量直接存储数据,分配在托管栈中。变量会在创建它们的方法返回时自动释放,例如在一个方法中声明Char型变量值时,name变量在栈上占有的内存就会自动释放 2、引用类型    引用类型的变量持有的式数据的引用,数据存储在数据堆,分配在托管堆中值类型和引用类型的区别:   ...

2018-04-03 20:43:57 195

原创 linux下fork()父子进程之间变量共享情况

       子进程会拷贝父进程的所有资源,变量。但是子进程从父进程拷贝下的所有资源会放到一个新的地址中。父子间共享的内存空间只有代码段。        子进程修改一个从父进程中拷贝下来的变量,父进程中的这个变量不会改变。 子进程从父进程拷贝的内容主要有以下 用户号UIDS和用户组号GIDS 环境Environment ...

2018-04-03 15:12:08 9816

原创 Docker学习一

之前听过docker,现在学习,一些知识点,记录下来,在日后有需要的时候,也可以回顾下一、安装:https://www.docker.com/docker-windows,平台是windows 10,打开网址如果上面那个链接下载很慢,可以到这边下载:http://get.daocloud.io/#install-docker-for-mac-windows二、安装三、安装完之后会提示重启什么的,按...

2018-04-02 16:22:33 125

转载 Windows下安装Redis服务

Windows下安装Redis服务说明:本文拷贝自https://jingyan.baidu.com/article/0f5fb099045b056d8334ea97.htmlRedis是有名的NoSql数据库,一般Linux都会默认支持。但在Windows环境中,可能需要手动安装设置才能有效使用。这里就简单介绍一下Windows下Redis服务的安装方法,希望能够帮到你。1、要安装Redis,首...

2018-04-01 00:13:42 452

原创 Intellij IDEA编辑golang设置GOPATH变量

        因为在使用IDEA进行开发go项目时,在项目目录下创建了src目录,在目录下创建了go包文件,但是在main包内引入包,编译时报错,说没有找到包,路径没有对应该项目的src下。然后就在idea里面设置,因为对这个ide不熟,所以在网上花了一点时间找设置。找到之后记录下,以后用的着的时候再回过头来看看。IDEA->file(文件)->settings->Langua...

2018-03-31 00:20:42 21302

转载 JetBrains GoLand runnerw.exe: CreateProcess failed with error 216 (no message available)

今天使用 goland 编译的时候遇到这么一个问题runnerw.exe: CreateProcess failed with error 216 (no message available)仔细查找一番原因后,发现.go文件的包名存在问题,修改之后不再报错。修改包名为 package main 就行。https://blog.csdn.net/a41888313/article/details/...

2018-03-30 19:24:16 707

原创 phpstudy 部署多个web网站

如果想在一个服务器上部署多个网站,或者是不同的项目接口,(1)修改httpd.conf,添加要监听的端口,我这边服务器部署了三个php网站(2)修改vhosts.conf文件,每个站点对应一个端口(3)重启apache...

2018-03-29 21:47:08 4989

转载 KMP算法中next数组的手工计算方法

笔试题目中经常要求计算KMP算法的next数组,网上有很多讨论的文章,但是感觉都讲的不太清楚,特别是在如何手工计算这一方面,所以今天特别整理了一下放到这里,一来备忘,二来也希望给有缘人带来一些方便。位置编号12345678字符串abaabacanext数组01122341手工计算方法,next数组从1开始计算 next[1] 肯定是 0 next[2] 肯定是 1next[n] 的情况,将前面n-...

2018-03-29 08:32:51 560

空空如也

空空如也

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

TA关注的人

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