自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 小cache与大内存的映射详细解析

更多精彩内容,或者需要更详细的资料,欢迎关注微信公众号:云计算coding之美,留言,感谢。众所周知,电脑的设计与制造可以说是信息时代,整个人类智慧的集大成者,包括众多技术,如计算,存储,网络等等,个人理解它更像是传统的制造技术与新型高技术的结合体,我也希望,通过开设“体系结构那些事儿”专题,能让我们更好认识到电脑里各个冷冰冰的器件之间的联系及存在意义。从个人的理解上来说,我们的个人电脑的功能上就是云计算的一个缩影,云计算中的功能块几乎我们的个人电脑中...

2021-11-10 21:41:05 866

原创 中国邮递员问题+代码实现(cpp)

中国邮递员问题是一个和旅行商问题比较相关但又不太相同的一个问题,而且个人感觉理解的难度更大一点,当然,这就是仁者见仁,智者见智了,旅行商问题是不能回头的,一个节点访问过了不能回来了,并不需要走完所有的路,但是中国邮递员问题可以多次访问一个节点,因为中国邮递员问题要求的是要访问所有的街道,即,每条街道必须访问到。在这样的前提下,如果规划路径使得返回邮局时路程最短。 试想...

2019-05-16 11:34:53 16138 8

原创 旅行商问题(华为笔试蜜蜂采蜜问题)

旅行商问题是算法中比较难的一类题目,也是比较综合的题目之一,其变种的题目也非常灵活,应用场景非常广泛,前段时间在做华为笔试题目的时候,遇到了一个与旅行商问题相关的蜜蜂飞行采花粉问题:题目大意是:一个蜜蜂从蜂窝出发,在五朵花上采蜜之后,要飞回蜂窝,题目给出蜂巢和5朵花在二维空间中的坐标,求蜜蜂走完全程的最短路程。这是典型的旅行商问题的应用,但是当时因为对旅行商问题不是很熟悉,为了快速写完代码...

2019-05-15 22:06:28 3849

原创 面试经典之------八大排序算法

说实在的,刷了这么多题目,突然发现自己的基础是多么的差,今天看了一下八大排序算法,写起来还是费了不少功夫,八大排序算法包含7个基于比较的排序,和基于非比较的桶排序,接下来介绍一下经典的八大排序算法的原理及其代码实现。冒泡排序:冒泡排序是我们大多数人所接触的最早的排序算法,时间复杂度为O(N^2),空间复杂度为O(1),冒泡排序每次迭代将当前区间内的最大数沉底或者将最小数升顶,二者都为冒泡排...

2019-04-18 23:00:33 483 1

原创 启动盘安装Ubuntu server版 提示无法挂载cd-rom数据的解决办法

          一般我们喜欢用UltraISO做启动盘,然后装机,以前都好好的,但是,今天安装ubuntu server版时一直报错,提示无法挂载cdrom,让我retry,其实,这是因为安装server 的时候,引导要自己去寻找ubuntu 镜像文件进行安装,这种方式好坏不说,但是无疑增加了一般用户的麻烦度,解决该问题具体的做法是:1、将制作启动盘时的镜像文件拷入u盘中,在提示cdrom...

2018-11-24 19:43:58 12313 7

原创 ubuntu系统扩容

        ubuntu服务器系统如果出现存储空间不足时需要扩容,我们看如何将该硬盘的存储空间利用起来。        ubuntu系统没有虚拟盘的概念,是通过将盘挂载到文件来实现的。        明白了以上的概念,我们来看两种扩容的方法:1、 ubuntu LVM扩容,在ubuntu系统安装的时候有个选项专门是选择是否需要LVM的,这里一般都会选择。没有可以自行百度如何安装,这...

2018-11-24 19:21:42 941

原创 tensorflow1.12 多GPU协同训练报错tensorflow.python.framework.errors_impl.NotFoundError: libnccl.so.2

       tensroflow为了提高多模型训练速度,需要多个GPU同时工作,而且我们一般使用的工作站都是8块tesla K80,如果能将8块显卡的计算力充分利用起来,将会大大提高模型训练的速度,缩短模型训练时间。       这几天看到tensorflow的morroredstrategy特别好用,就想试试,所以写了代码,想看看多个GPU的效能怎么样,就仿照github上tensorfl...

2018-11-08 20:45:20 10043

原创 Xmanager Enterprise 5 + VirtualBox + ubuntu server 命令行下完成安装与远程访问

         平时因为需要,经常会用到虚拟机,最早使用过VMware,毫无疑问是一款非常好用的虚拟机,功能强大,破解也不是很麻烦,但是,在某些场景下是不适用的。比如实验室条件下,服务器使用的频次高,人员也很多,相互之间的配置,版本啥的难免会出现干扰,因此,最好的方式就是用虚拟机将所有系统隔开,避免相互影响。          一般情况下,实验室的ubuntu server系统都是只能用Xs...

2018-11-06 22:27:25 543

原创 tensorflow+keras+estimator完成cifar10数据集对Resnet50的训练

         虽然一直在使用tensorflow,但是,都是简单的实现训练,并没有对该软件有特别深入的了结,前段时间Google王铁震工程师在CSDN的课上讲述了estimator的方便之处,尤其是在分布式神经网络训练上的强大应用,才让我默然觉得这是个不错的东西,所以,就花了较长的时间看了一下这个东西怎么用,尤其是keras新版本中已经添加了关于模型转换estimator的部分,就i做了一些尝...

2018-11-06 18:06:45 2332 3

原创 327. count-of-range-sum

         这道题难度还是挺大的,基本上hard的题目都要费点脑子,根据一般的办法,求和并暴力的复杂度是O(N^2),而题目中明确说O(N^2)是naive,所以,该题目的难点在于如何降低时间复杂度。         题目大意:给定一组数和一个区间,求改组数中所有满足该区间加和的子数组的个数,就是从数组中挑选一组连续的数,如果选出的数之和满足条件,则视为一组有效数,如果不满足条件,则为无...

2018-11-03 14:57:33 289

原创 321. create-maximum-number

        这道题挺好的,有一定的难度,把一般使用的merge排序有了更灵活的应用,也算是开了眼界。而我也是挂在不知道该如何灵活使用merge排序上了。         题目大意是:给定两个数组,分别表示两个数字,比如,给定要给数组中有两个元素,2,1,表示的是:21,就这个意思。在每个数组各个数字相对位置不变的情况下,挑选固定数量的数字组成一个新的数字,要求这个数字是最大的。    ...

2018-11-02 22:27:05 185

原创 306. additive-number

          这道题个人感觉难度还是挺大的,一开始一直在想有什么简单的方法来解决,但是,似乎找不到比O(N^2)更小的方法,如果有更好的方法,希望大家不吝赐教。其实这道题有几个问题比较关键,第一个,字符串转换成数字进行计算,最终要判断字符串是否满足斐波那契数列。 第二个,剔除非法字符情况,第三,字符串可以很长,但是int数字的最大位数是固定的。           题目大体意思是:给定一...

2018-10-31 11:06:44 263

原创 212. word-search-ii

       这道题乍一看基本的思路就是深度优先遍历,如果根据一个词,遍历一遍整个数据表,那复杂度显然是比较高的,每个词都要遍历一遍二维数组表,而且每个字母要做一次深度优先遍历,这种暴力寻找的做法空间没有浪费,但是时间复杂度太高,起初在做这道题的时候,也没有较好的解决办法。但是想到前面有一个题目字典树的做法,通过空间来换取时间上的高效,因此想到这里,就先对原先的字符串数组构建字典树。     ...

2018-10-27 15:28:12 144

原创 84. largest-rectangle-in-histogram

        这道题难度还是蛮大的,主要是不太好想,反正第一次我是没想出来,后来看了大神的思路后,才慢慢理解的。        题目意思是:给定一组宽度为1,高度不定的矩形,求这些矩形组成的最大面积是多少,实际上大矩形的高度取决于最短的那个。        具体的思路是,利用栈来保持一个递增的序列,比如输入1 2 3 4 5,就将其入内,如果此时再出现一个4,则需要将5弹出,并计算的当前...

2018-10-25 11:38:15 410

原创 76. minimum-window-substring

       这道题细节处理起来还是有点难度,太不是难到没有思路的那种。       题目大意:给定两个字符串,一个是原始匹配串,另一个是目标串,在匹配串中选寻找一个最短的字串,包含目标串的所有字符,重复情况要考虑。例如:abdccab 目标串是 abccd,则原始匹配串中最短的字符串是dccab        思路,首先,并不是KMP求目标子串,条件没有那么严格,所以,先要记录目标串中每...

2018-10-25 10:42:13 423

原创 205. isomorphic-strings

       这道题有点技巧性,是一个一一映射的题目。       题目的大体意思是:给定两个字符串,假设每个字符仅有唯一的映射关系,判断这两个字符是否能映射成一样的字符。其实这种问题在密码学中经常遇到,就是我们通过密码本,可以将密文唯一的翻译成明文,也可以将明文唯一的加密成密文。那么,现在给定两个字符串,看这两个字符串是否存在这种映射关系。       解题思路是这样的,两个字符串分别取...

2018-10-24 12:29:09 135

原创 72. edit-distance

        这道题目在大多数公司的笔试题目中都能找到踪迹,以前也遇到过很多这样的情况,其中蕴含的思想在字符串匹配,以及字符串其他操作上使用的非常丰富,而且,最重要的是,这是一类深度优先遍历转换为动归的典型题目。        题目的大致意思是,给定两个字符串,可以通过三种操作变化使两个字符串变为一样,分别是,修改,插入,删除。而总修改次数被称为两个字符串的距离,求出两个字符串变为相同字符串...

2018-10-24 12:11:53 173

原创 204. count-primes/hints

      这道题还是挺有意思的,找质数,如果按照最笨的方法一个一个遍历,需要的复杂度是O(N*N),但是显然复杂度比较高,所以,需要找到时间复杂度比较低的方案。       题目大意 :给出一个数,找出所有小于该数的质数,并输出质数的个数是多少。       首先,我们找到第一个质数2, 然后将2的整数倍且比n小的元素都置为0,这样4,6,8,……都置为0,然后继续寻找第二个质数,找到了...

2018-10-23 11:28:36 123

原创 57. Insert Interval

        这道题刚开始有点难想清楚,所以,代码上可能就会比较麻烦,但是一旦想清楚了,就会简单很多。个人感觉难度不算太大。        题目大体意思:给定一组互不相交的升序区间,再给定一个需要加入该组的区间,求出最终的包含的区间范围,要求如何新加入的区间与原有区间之间出现了重叠,就将其合并,从而得到最终结果。比如:原本的区间是包含:[1, 5],[6, 7] 给定的新区间[2,6],则最...

2018-10-22 15:39:35 200

原创 51.N-Queens

       这道题是一类比较经典的题目,和数独以及leetcode上的其他题目一起构成了比较典型的一个类型题集,本质就是迷宫问题,基本的解决算法就是深度优先遍历DFS。       题目的大致意思是:在一个棋盘上,每一行和每一列都有且只能有一个Q棋子,且45度对角线上也只能由一个Q棋子。       实际上我们就一行一行的放置,第一行选择一个位置放置Q,接着到第二行放置,因为深度遍历的时...

2018-10-22 12:18:11 132

原创 168.excel-sheet-column-title

这道题乍一看挺简单的,就是10进制转换26进制的问题,但是,并非我们平时所说的10进制到26进制的转换方法,用短除法求出来的结果和测试用例不太吻合,这主要是题目做了一点小小的变动。题目大致意思:1-26分别对应A~Z这26个字母,AA表示27, AB表示28,……,AZ表示52,……,程序给定一个int型正数,则按照上述规则,求如何转化出对应的字母。根据题意,这并不是一个完全的26进制转化...

2018-10-20 17:55:05 123

原创 160. intersection-of-two-linked-lists

这道题是一道很有意思的题目,值得看一下。题目大意是:给定两个链表,这两个链表和平时遇到的链表的区别在于他们最终有可能汇聚在一相同的一点上,如图所示,但是,并非一定能重合。如果有重合点,返回该重合点,如果没有返回NULL。假设我们考虑一种比较极端的情况,就是在回合之前,两个链表的节点数是相等的,那么,同时向后便利节点,一定能找到汇聚的情况,即使是两个不相交的链表,最终也会汇聚到NULL地...

2018-10-20 12:07:16 111

原创 88.merge-sorted-array

       这道题目被喷的很惨,而且难度极低,基本上是个人都能做出来,但是我要说的是,一个细节的处理很重要,个人感觉是能反映出一些灵活运用的能力。       题目大体意思是这样的,给定两个从小到大的排序数组,将两个数组归并排序到第一数组里面去,第一个数组中前m个是待排元素,后n个为位置是任意数字,目的是能够放下两个数组。      这道题用常规的归并排序完全可以做,但是,既然题目专门将...

2018-10-19 11:20:30 87

原创 45 jump-game-ii

这道题目和以前一道能不能跳到最后一点的题目有比较类似的思路,但是要稍微难一点,因为要求出最小的跳数。题目的大体意思是这样的,给定一个一维数组,数组中每一位上的数字表示从该位置能向后一跳的最远距离是多少(之所以说最远是可以在0~最远值之间任意选择一个合适的数值),问到达最后一个位置所经历的最小跳数。这种题目基本上穷举是肯定不行的,因此,要有一些小的处理技巧。另外,值得注意的是,这道题给出的所有测...

2018-10-18 21:58:24 228

原创 44.wildcard-matching

      这道题也是正则表达式类的题目,和10题有很大程度的相似度,个人感觉难度上来讲,这道题要简单一点,有一点需要注意的是这道题不能用递归来解决,看到有个测试用例会超时,但也可能是我自己的思路上有缺陷,如果有大神,肯请指点。      这道题是*号表示任何字符串包括空串:"",?表示可以与任意一个字符串匹配,所以,最特殊的还是*号,我们分情况讨论,1、假设当前p[i] = s[j] 或...

2018-10-17 17:53:50 250

原创 42.trapping-rain-water

      以前在听算法课的时候,有一个人说过这样一句话,凡是那道题没有思路的9成要用动态规划,当然可能说的有点绝对,但是不无道理,就是说,一般的题目我们遇到后能立即想到思路,哪怕是那种很麻烦的,但是动态规划往往是麻烦的也不一定能想出来。而动态规划的难度也确实比较大,其灵活性很高,他不同于字符串,数组,排序这种的某一类问题,他是一种思想,渗透到各种各样的问题的当中,而leetcode有关动归的问题...

2018-10-17 16:30:05 834

原创 41. first-missing-positive

      这道题呢技巧性比较强,对于像我这样的新手第一次一般是想不出来这种方法的。      题目的大意是找出一个int数组中第一个缺失的正整数,比如:0,1,3,5. 这组int数组中,第一个缺失的正整数是2,当然最直观的思路是我从1到n一个一个到数组中去寻找,看第一个缺失的谁,这样复杂度是O(N^2),而这种思路代码比较简单,另一种比较新颖的思路是利用下标和正整数之间的关系,来完成寻找,...

2018-10-17 15:29:32 202

原创 37.sudoku-solver

     这道题是数独游戏,规则我们很清楚,小时候一般小孩都玩过,所以,题目大体意思比较好懂。     题目大意:给定一个9*9的二位数组,与数字和"."组成,按照数独游戏规则,在"."处填入数字,使得整个矩阵的每一行都是由1~9组成且没有重复,每一列由1~9组成且没有重复,9*9的矩阵可以分成9个3*3的二位小矩阵,而9个3*3的矩阵中,每个都是由1~9这9个数字组成,且没有重复。   ...

2018-10-17 12:19:43 346

原创 32.longest-valid-parentheses

       括号匹配的题目是leetcode一个常见的题型,从easy到hard各种难度都有,其实他可以归在字符串大类之中,既然是字符串题目,不可避免地灵活性就会非常高,同时也增加了解题的难度。       这道题目的大体意思是这样的:给定一个只有左括号"("和右括号")"的字符串,求合法的字符串有多长,合法的意思是说左括号必须出现在右括号的左边的情况视为合法情况,例如:()(), (())...

2018-10-17 11:21:42 250

原创 30.substring-with-concatenation-of-all-words

        说实在的,这道题还是比较难的,因为没有好的思路,其实从历年各个公司的算法真题来看,难题还是多出现在字符串上,这道题就是比较灵活的一道,没啥太好的思路,起初想着dfs,倒是可以做,但是开销蛮大的,因此,这里我参考大神的代码写了使用hash来解决问题。达到O(N)的时间复杂度和O(N)的空间复杂度。         题目的大意是给定一个字符串和一个字符串对应的数组,在字符串中寻找一...

2018-10-16 21:31:56 237

原创 25 reverse-nodes-in-k-group

这道题的大意是说,给一个链表,再给一个整型数字K,要实现这个链表每K个数进行一次反转,整条链表反转的题目比较熟悉,但是,一个链表分成好几组进行反转其实大体思路是一样的,但是每组反转结束之后,应该如何变化指针进行下一次反转,这是这道题的重点。按照以前链表反转的思路,我们首先要创建一个头节点,用来记录链表头节点的位置。其次,设置计数值,将每组的头尾节点分别记录,这块要注意,最好要记录每组头节点...

2018-10-16 11:32:51 96

原创 10 regular-expression-matching/submissions

这道题其实是一道正则表达式 题目,“.”可以表示任何字母,“*”可以表示对其前面的字母做n次重复,可以看出,最难处理的就是*号,因为按照我们平时的字符串匹配算法,一对一就可以,就算加上“.”也一样,而给整个算法加入更多不确定性的就i是“ * ”,换句话说,我们要对“*”的位置进行讨论。“*”只对其前面的一个字母起作用,换句话说,如果一个字符串中出现了“*”,假设第k位是*,那么如果前k-2个字...

2018-10-15 22:41:21 100

原创 4 median-of-two-sorted-arrays

第四题评级是hard,看似很简单的题目着实没有那么容易做,主要原因在于时间复杂度的要求非常严格,基本上数组的题目,只要已经拍好了顺序,就必须在logN的复杂度下解决,当然后台的检测没有那么严格,O(n)也能通过,而为了而实现logN的复杂度,我也是在网上看了好久的答案,自己手推了一遍,才AC掉。答题的思路是这样的:1、两个有序数组,总共有多少个数已知,这道题的本质就变成了第K个小数是哪个的...

2018-10-15 17:42:06 141

原创 去哪网2018年9月17号第二题AC代码

这道题是标准的骑士问题,但是当时没有考虑其实和终止位置相同的情况,所以就浪费了好多时间。好在最后想出来了。题目:AC代码:#include <iostream>#include <queue>using namespace std;void jump();int board[12][12];int xend;int yend;class ...

2018-09-17 11:57:57 134 2

原创 爱奇艺2018年9月15日笔试编程题目AC代码

这几天一直在关注着工作的事情,师兄们做笔试题,我也跟着在刷,包括华为,百度,腾讯,阿里等公司的笔试题都做了,基本上都帮助师兄拿到了面试的资格,但是因为密度太大,而自己还要整理leetcode的学习笔记,所以,很多题目没有来得及整理,今天正好提前AC完成,就简单分享一下爱奇艺的两个题目。第一个题目是,一个字符串,有六个符号,符号是从字符0到字符9的任意一个数,给定一个字符串后,你可以改变任意任何...

2018-09-15 12:01:57 280

原创 priority_queue特性解读

       priority_queue是优先级队列的意思,简单理解就是队列带有了优先级的区分,和平常我们看到的队列queue的区别在于,平时的队列元素没有优先之分,先进来的数据先出去,而通常情况下,在一些实际的场景中,队列往往设有优先级之分,这在计算机网络中是非常常见的,举个例子,当一个非常重要的数据进入队列之后,需要快速发出去,就需要让其他数据等待,重要的数据先发出去,这就要求该数据有高于其...

2018-09-14 22:18:46 1841

原创 862. Shortest Subarray with Sum at Least K

       好久没有更新了,这几天主要对hard级别的题目做了一些,今天分享一下862题的解题思路,一般看到这种类型的题目,有两个反应,暴力遍历所有情况,然后选择出最好的,但是这种情况肯定是行不通的,效率是非常低的,而且这种采用加和形式的题目,如果前面加出来的结果不能被后面的计算步骤利用,那将不是一个比较好的结果,因此,在看了大神们的代码后,整理了一下思路。        为了实现O(N)的...

2018-09-14 17:00:44 117

原创 324. Wiggle Sort II

这几天做的题有点多,所以,博客写的有点简单。这道题是要大小数叉开,整个序列将会成为小大间隔开来,如果是我们正常情况下,肯定是选择一个中位数,然后将数组对半分开,小数放在偶数位上,大数放在奇数位上,但这就要求空间复杂度和时间复杂度都要是O(n),而题目要求不能有额外的空间消耗,因此,需要在空间复杂度上来考虑。我们的目的是将小数放在偶数位上,大数放在奇数位上,要做到这一点我们需要两步骤,首先要...

2018-09-08 20:24:19 384

原创 215. Kth Largest Element in an Array

这道题虽然难度不大,而且可以用不同方法解决,但是确实学到了不少东西,尤其是第一次看到了优先级队列这种操作。第一种方法,hash表排序:class Solution {public: int findKthLargest(vector<int>& nums, int k) { if (nums.size()<1 || k>nums....

2018-09-08 17:49:50 115

原创 130. Surrounded Regions

这道题可以帮助大家学习一下深搜和广搜,连通性问题,而且是四联通,具体的思路简单,代码比较长,没啥太突出的技巧性。DFS:class Solution {public: void solve(vector<vector<char>>& board) { if (board.empty() || board.size()<2 |...

2018-09-08 17:39:08 90

飞思卡尔光电四轮c车

十一届NXP杯全国大学生智能汽车竞赛山东省赛第一名,至少3.3m/s,寻中。

2018-03-19

空空如也

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

TA关注的人

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