- 博客(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 7373
原创 面试题21: 二维数组搜索
题目: 设计一个算法对 m*n 矩阵进行搜索,这个矩阵拥有如下属性. 1)每行的数都是从左到右排序好的. 2)每行的首数大于上行的尾数.其实这题就是用二分查找算法,二分查找一般是在一维数组上进行搜索,解决这道题的关键就是如何将二维数组映射成一维数组.映射关系为: k=i*n+j,j<n,k为在一维数组的中的下标值,i,j分别为二维数组中的行和列.根据前面的可以推导出i=k/n,j...
2018-05-19 15:45:54 310
原创 面试题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 438
原创 面试题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 405
原创 面试题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 184
原创 面试题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 505 1
原创 面试题16: 旋转数组最小值
题目: 输入一个递增排序的一个旋转,输出旋转数组的最小值.分析:第一步:要知道什么是旋转数组?其实就是将一个有序的数组,前n个直接丢到最后面. 根据上面什么是旋转数组,我们可以知道旋转数组会有这样一个规律,就是这个一个递增排序数组的一个旋转,可以看成两个递增数组的组合.有一个核心的地方,就是左边序列的所有值会大于等于右边的值,那么我们就可以使用二分查找.第二步:使用二分查找,中间的要么在第一...
2018-05-17 13:18:58 140
原创 面试题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 403
原创 面试题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 588
原创 面试题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 540
原创 面试题7:插入区间
题目:给定一个没有叠加的区间序列,现插入一个新的区间到该序列中,要求维持没有重叠的情况。假设该系列存放的区间有序的,区间定义如题目“重叠区间个数”。举例: 假定我们已有两个不重叠而且排好序的区间:[1,5],[6,10],现插入一个新的区间[4,6],那么最后结果是[1,10]。代码实现:package mainimport ( "fmt")type Interval struct {...
2018-05-07 20:37:15 171
原创 面试题6:重叠区间个数
题目:给定多个可能重叠的区间,找出重叠区间的个数。举例 输入:[1,5],[10,15],[5,10],[20,30] 输出:3解法一:常规解法,就是我们一上来,最先想到的方法就是使用暴力破解,直接扫描,先第一个区间开始,看这个区间是不是在后面其他区间里面,两两区间判断是否重叠的方式,用一个数组存放区间是否存在重叠,如果两个区间重叠,比如第一个区间和第五个区间重叠,则把数组下标0,4这...
2018-05-07 17:14:45 2909
原创 面试题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 509
原创 面试题4:数组旋转
题目:返回将一维数组向右旋转k个位置的结果。比如,一维数组{1,2,3,4,5},k=2时,返回结果时{4,5,1,2,3}。要求常数级空间复杂度,允许修改原来数组。书中给出的思路: 如果允许额外分配线性空间,那么可以错位复制原有数组的元素。如果允许修改原有数组,那么我们可以通过三次反转数组来实现数组旋转,不需要申请额外空间,并且每次反转时间为O(n),从而实现线性的时间复杂度和常数级的空间...
2018-05-05 21:20:45 186
原创 面试题3:两数之和
题目:设计一个类,包含如下两个成员函数: Save(int input) 插入一个整数到一个整数集合里,整数集中可以存在相同值。 Test(int target) 检验是否存在两个数和为输入值。如果存在这两个数,则返回true,否则返回false。书中给出的解析:这题相比上一题,只要把<值,下标>改成<值,个数>,第一次遍历将数组存到哈希表里面;第二...
2018-05-05 20:19:32 275
原创 面试题2:两数之和 2
题目:给定一个整型的数组,找出其中的两个数使其和为某个指定的值,并返回这两个数的下标(数组下标是从0开始)。假设数组元素的值各不相同,则要求时间复杂度为O(n),n为数组的长度。书中给出的核心思想:利用哈希函数,因为题意给出的是数组元素的值各不相同,所以第一次可以以键值<value,index>方式存入哈希表中;第二次扫描的时候,检查这个target与当前值的差值是否在哈希表中,且这个...
2018-05-05 16:22:20 179
原创 面试题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 2044
转载 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 3144
原创 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 1640
转载 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 469
转载 Mware Workstation 与 Device/Credential Guard 不兼容.
解决办法 禁用hyper版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hangyejiadao/article/details/53468687
2018-04-11 08:23:21 1424
原创 archive/tar包
Go标准库中的tar包实现了tar格式压缩文件的存取。本包目标是覆盖大多数tar的变种,包括GNU和BSD生成的tar文件。前面一句是go标准库中所说,其实就是可以使用这个包,然后可以在windows,linux,mac,unix系统上运行,达到不需要去知道不同操作系统的tar文件底层实现而可以跨平台使用。接下来学习这个标准库的使用:一、首先是这个包里面的常量[html] view...
2018-04-08 21:03:43 1953
原创 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 750
原创 堆排序
在理解堆排序前,先理解下什么是堆?堆:所谓的堆就是一颗完全二叉树的每个节点都不大于子节点。完全二叉树:二叉树的深度为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 199
转载 桶排序
桶排序简单入门篇^-^在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同学们的分数按照从高到低排序。小哼的班上只有5个同学,...
2018-04-05 01:36:08 183
转载 拓扑排序(Topological Sorting)
一、什么是拓扑排序在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:每个顶点出现且只出现一次。若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说。例如,下面这个图: ...
2018-04-05 01:22:35 198
原创 值类型和引用类型深入理解
1、值类型(ValueType) 值类型包括:数据类型、结构体、bool型、用户定义的结构体、枚举、可空类型 值类型的变量直接存储数据,分配在托管栈中。变量会在创建它们的方法返回时自动释放,例如在一个方法中声明Char型变量值时,name变量在栈上占有的内存就会自动释放 2、引用类型 引用类型的变量持有的式数据的引用,数据存储在数据堆,分配在托管堆中值类型和引用类型的区别: ...
2018-04-03 20:43:57 193
原创 linux下fork()父子进程之间变量共享情况
子进程会拷贝父进程的所有资源,变量。但是子进程从父进程拷贝下的所有资源会放到一个新的地址中。父子间共享的内存空间只有代码段。 子进程修改一个从父进程中拷贝下来的变量,父进程中的这个变量不会改变。 子进程从父进程拷贝的内容主要有以下 用户号UIDS和用户组号GIDS 环境Environment ...
2018-04-03 15:12:08 9759
原创 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 124
转载 Windows下安装Redis服务
Windows下安装Redis服务说明:本文拷贝自https://jingyan.baidu.com/article/0f5fb099045b056d8334ea97.htmlRedis是有名的NoSql数据库,一般Linux都会默认支持。但在Windows环境中,可能需要手动安装设置才能有效使用。这里就简单介绍一下Windows下Redis服务的安装方法,希望能够帮到你。1、要安装Redis,首...
2018-04-01 00:13:42 451
原创 Intellij IDEA编辑golang设置GOPATH变量
因为在使用IDEA进行开发go项目时,在项目目录下创建了src目录,在目录下创建了go包文件,但是在main包内引入包,编译时报错,说没有找到包,路径没有对应该项目的src下。然后就在idea里面设置,因为对这个ide不熟,所以在网上花了一点时间找设置。找到之后记录下,以后用的着的时候再回过头来看看。IDEA->file(文件)->settings->Langua...
2018-03-31 00:20:42 21279
转载 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 4956
转载 KMP算法中next数组的手工计算方法
笔试题目中经常要求计算KMP算法的next数组,网上有很多讨论的文章,但是感觉都讲的不太清楚,特别是在如何手工计算这一方面,所以今天特别整理了一下放到这里,一来备忘,二来也希望给有缘人带来一些方便。位置编号12345678字符串abaabacanext数组01122341手工计算方法,next数组从1开始计算 next[1] 肯定是 0 next[2] 肯定是 1next[n] 的情况,将前面n-...
2018-03-29 08:32:51 557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人