自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sweeterer的博客

思想是相对的,人也是相对的。

  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 Arithmetic problem | Target Sum

题目如下:You are given a list of non-negative integers, a1, a2, …, an, and a target, S. Now you have 2 symbols + and -. For each integer, you should choose one from + and - as its new symbol.Find out how m

2017-02-12 18:37:58 7047

原创 Arithmetic problem | 书籍复印

题目如下: 给出一个数组A包含n个元素,表示n本书以及各自的页数。现在有个k个人复印书籍,每个人只能复印连续一段编号的书,比如A[1],A[2]由第一个人复印,但是不能A[1],A[3]由第一个人复印,求最少需要的时间复印所有书。样例: A = [3,2,4],k = 2返回5,第一个人复印前两本书解题思路: 这个题有一定难度,先提出合理假设B(l,k)为l个数据规模的k人分配使用最短时间。把

2017-02-05 22:27:10 6016

原创 Arithmetic problem | 非法二进制数

题目如下:如果一个二进制数包含连续的两个1,我们就称这个二进制数是非法的。找出在所有 n 位二进制数(一共有2^n个)中,非法二进制数有多少个。例如对于 n = 3,有 011, 110, 111 三个非法二进制数。由于结果可能很大,你只需要输出模10^9+7的余数。输入 一个整数 n (1 ≤ n ≤ 100)。输出 n 位非法二进制数的数目模10^9+7的余数。样例输入:3样例输出:3解题思

2017-02-04 16:22:36 5170

原创 Arithmetic problem | The Triangle

题目如下:Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagon

2017-01-29 15:00:50 7979 2

原创 Garbage Collection | 引用计数的改善考察(三)

5 环形引用计数续前篇,引用计数技术无法回收环形数据结构,这个由McBeth首先 注意到的问题可能是反对引用计数的最有力的论据[McBeth, 1963]。环形结构在应用层和系统层都是相当常见的。一般来说,当程序员们使用反向指针(back-pointer)、或是为了以自然的方式表达某些领域相关问题时,往往会创建一个环。此外,程序员有时也会在无意中创建环,例如在一个哈希表链(hash table ch

2016-11-15 20:46:42 23826 1

原创 Garbage Collection | 引用计数的改善考察(二)

3 计数域大小受限得引用计数续前文,引用计数技术需要再每个单元中保留一定空间以存放引用计数值。理论上,再最糟糕得情况下,这个域必须达到足够存放堆中节点核根所保存得指针的总数,换句话说,这个域必须核指针一样大。然而,若是说所有的应用里计数值都会增长到这么大,那未免泰国不可思议了。因此,我们可以使用较小的引用计数域来节省空间,代价则识必须小心地处理溢出问题。3.1 “粘住的”计数值对于某个单元,引用计数

2016-10-23 19:23:52 9400

原创 Garbage Collection | 引用计数的改善考察(一)

1 非递归的释放之前的博文中,所介绍的简单的引用计数算法中,每当指向某个对象的指针被改写的时候,Update过程就会减小那个对象的引用计数数值。如果计数值变为0,那么在将该对象所占据的内存归还给自由链表之前,必须递归地删除这个对象所包含的指针。因此,简单的递归释放在散布处理开销时并不均匀:删除指向某个对象的最后一个指针的代价不是常数,甚至不是正比于对象大小,而是依赖于以改对象为根的子图的大小。1.1

2016-10-12 16:46:38 11181

原创 Garbage Collection | 节点复制算法

这次考察的是基于追踪的算法:节点复制算法。节点复制式收集器将整个堆等分成为两个半区(semi-space),一个包含现有的数据,另一个包含已被废弃的数据,节点复制式垃圾收集从filp两个半区的角色开始。然后收集器在老的半区,也就是Fromspace中遍历存活的苏话剧结构,在第一次访问某个单元时把它复制到新的半区,也就是Tospace中去。在Fromspace中所有存活单元都被访

2016-10-11 14:46:05 7640 1

原创 Garbage Collection | Mark-Sweep算法

这是第一种用于自动内存管理的算法,标记-清扫(mark-sweep)算法【McCartby ,1960】.在这一方案下,内存单元并不会在变成垃圾的同时立刻回收,而是保持不可到达和未被发现的状态,直到所有可用的内存都耗尽。如果此时再次出现对新单元的请求,系统会暂时挂起“有用”的程序,并调用垃圾收集例程,将堆中所有当前并未使用的单元清扫回自由单元池中。标记-清扫算法依靠

2016-10-10 11:43:52 7610 1

原创 Garbage Collection | 引用计数算法

这是一个比较直接的算法,其基本手段是为每一个单元计算指向它的引用(来自其他活动单元或者根)的数量【Collins,1960】.它的优点在于能够非常简单的判断单元是否

2016-10-09 21:37:23 12702 1

原创 Generic design | Typelists

注意:本系列博文需要对templates和STL有一定掌握。Typelist        续前篇,这回介绍Typelists。typelists的作用,是操作大群型别的工具,就像lists对数组提供各种基本操作一样,typelists对型别也会提供相同操作。       如果以传统的编程技术操作一大群型别,将是全然的重复性工作,如此重复会导致隐蔽的程式膨胀,多数人不会想到其实它可

2016-09-22 16:20:57 33062

原创 Generic design | Policies 和Policy Classes

p

2016-09-14 13:23:15 16473 2

原创 Generic design | 多重继承在设计组合上的失败以及Templates带来的曙光

Templates带来的曙光关于多继承,容易导致一种想法:多重继承可能有助于处理【设计组合】--------通过使用少量的选择后的base classes,便可制作出同时具有多种特性以及能力的物件。因为多继承能让继承者同时拥有多个被继承者的特性与能力,以及其他可能的更多特性。但是,任何一位有经验的classes设计者都知道,这样天真的设计方式其实无法正常运作。让我们来分析多重继承的失败原因

2016-09-12 15:43:07 9441 1

原创 Generic design | 软件设计的多样性以及全功能型介面的失败

注意:本系列博文需要对templates和STL有一定掌握。 软件设计的多样性以及全功能型介面的失败软件工程,也许比其他工程展现出更丰富的多样性,因你可以采用多种正确做法完成目标,个体之间存在无尽的细微差别。每一个新的选择,都会创建一个新的软件面貌,一个新世界,且伴随各样变化。这些变化会徘徊于每个软件阶段,大至系统结构,小至程式片段。------------所谓软件设计,就是解域空间中的一

2016-09-11 21:40:28 21884 5

原创 Miscellaneous | 判断两个字符串是变位词

这是一道相对容易的题,但通过率却不高,题目如下:写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。样例给出 s = "abcd",t="dcab",返回 true.给出 s = "ab", t = "ab", 返回 true.给出 s = "ab", t = "ac", 返回 false.

2016-09-05 15:07:04 11381 2

原创 Arithmetic problem | 最大间距

题目如下:给定一个未经排序的数组,请找出其排序表中连续两个要素的最大间距。如果数组中的要素少于 2 个,请返回 0。使用线性的时间和空间复杂度的方法解决这个问题。样例给定数组 [1, 9, 2, 5],其排序表为 [1, 2, 5, 9],其最大的间距是在 5 和 9 之间,= 4.解题思路:这题目明显是要排序操作的,

2016-09-01 13:18:32 11402 3

原创 Arithmetic problem | 单词接龙 II

题目如下:给出两个单词(start和end)和一个字典,找出所有从start到end的最短转换序列比如:每次只能改变一个字母。变换过程中的中间单词必须在字典中出现。 注意事项所有单词具有相同的长度。所有单词都只包含小写字母。样例给出数据如下:start = "hit"end = "c

2016-08-27 18:40:44 15901 15

原创 Miscellaneous | 转换字符串到整数

应某位博友的提问,以下为解答博文(以后有提问的博友不要找我要qq了,因为我不常上,邮箱还是可以的)题目如下:实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。样例"10" =>10"-1"

2016-08-25 16:38:26 8756 9

原创 Arithmetic problem | 统计前面比自己小的数的个数

题目如下:给定一个整数数组(下标由 0 到 n-1, n 表示数组的规模,取值范围由 0 到10000)。对于数组中的每个 ai 元素,请计算ai 前的数中比它小的元素的数量。样例对于数组[1,2,7,8,5] ,返回 [0,1,2,3,2]解题时产生3个思路:1:暴力向ai前面的元素比较扫描,复杂度最高。2:这题目要的是前面比自己小的数的个数,

2016-08-21 21:32:56 14896 11

原创 Miscellaneous | 恭喜本人博客进入2万名以内,多谢各位支持!

多谢各位的支持,本人博客今天进入了2万名以内。顺道提醒:本人博客一般只发表算法解析博文,实现代码由mingw编译,因此可能有极少的代码语句出现vs编译错误情况,出现此状况,把简写的代码拆分开来即可。请多包涵。

2016-08-17 21:56:04 7223 35

原创 Miscellaneous | 余弦相似度

应某博友提问,写以下博文解析题目如下:给你两个相同大小的向量 A B,求出他们的余弦相似度返回 2.0000 如果余弦相似不合法 (比如 A = [0] B = [0]).样例给出 A = [1, 2, 3], B = [2, 3 ,4].返回 0.9926.给出 A = [0], B = [0].返回 2.0000解题思

2016-08-17 21:36:56 7192 5

原创 Arithmetic problem | 在原地顺时针90度旋转矩阵图像

题目如下:给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。样例给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]解题思路:旋转一个矩阵,要是允许额外空间的话会显得简单不少。但要求在原地进行显然要跟两数交换扯上一定关系。如图:从上图可以分析出,d33-->d30需要3步交换,1:d33a03,

2016-08-16 09:46:05 11788 7

原创 Arithmetic problem | 二进制表示

题目如下:给定一个数将其转换为二进制(均用字符串表示),如果这个数的小数部分不能在 32 个字符之内来精确地表示,则返回"ERROR"。样例n = "3.72", 返回 "ERROR".n = "3.5", 返回 "11.1".解题思路:这个题用小数乘以2取个位的常规方法显然是不明智的,二进制的拿取来源最好还是从类型上着手。拥有小数部分并能包含3

2016-08-15 19:28:50 11711 8

原创 Miscellaneous | 不适用额外空间判断字符是否唯一

应某位博友的提问,本博文为解析博文,多谢支持题目如下:实现一个算法确定字符串中的字符是否均唯一出现,如果不使用额外的存储空间,你的算法该如何改变?样例给出"abc",返回 true给出"aab",返回 false解题思路:这题目使用标记来解题是最优解,只是不允许申请额外空间,本人以往博文中也有一个惯用的伎俩,用位标记“Miscellaneou

2016-08-14 19:22:26 10478 7

原创 Miscellaneous | 图示理解卷积的物理意义

昨天有博友提问卷积的物理意义,如今把解析写成博文:在书本上,卷积的解析有很多。大部分围绕“对称,反转,反褶”等词语进行解析,实际上让人难以理解,无端端的信号为何需要反转?其实,卷积的物理意义用这个比较合适------加权与叠加,下面用图示来帮助理解:(以离散信号为例)已知已知下面通过演示求的过程,揭示卷积的物理意义。第一步,乘以并平移到位置1:&am

2016-08-13 09:48:53 11487 7

原创 Miscellaneous | 博文太旧,已清空

应某位博友的提问,以下为解答博文,多谢支持。这是一道相对容易的题,但通过率却不高,题目如下:写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。样例给出 s = "abcd",t="dcab",返回 true.给出 s = "ab", t = "ab", 返回 true.给出 s = "ab", t = "ac",

2016-08-12 19:03:26 5654

原创 Arithmetic problem | 求n个直方图所含最大的矩形面积

题目如下:给出的n个非负整数表示每个直方图的高度,每个直方图的宽均为1,在直方图中找到最大的矩形面积。以上直方图宽为1,高度为[2,1,5,6,2,3]。最大矩形面积如图阴影部分所示,含有10单位样例给出 height = [2,1,5,6,2,3],返回 10解题时产生两个思路:1:每个柱子都按当前位置左右遍历,左右

2016-08-11 20:29:29 11156 7

原创 Arithmetic problem | 吹爆n个气球,得到最多的分数

题目如下:有n个气球,编号为0到n-1,每个气球都有一个分数,存在nums数组中。每次吹气球i可以得到的分数为nums[left] * nums[i] * nums[right],left和right分别表示i气球相邻的两个气球。当i气球被吹爆后,其左右两气球即为相邻。要求吹爆所有气球,得到最多的分数。样例给出 [4, 1, 5, 10]返回 270nums

2016-08-11 15:04:29 14828 5

原创 Arithmetic problem | 判定字符串是否为攀爬字符串

题目如下:给定一个字符串 S1,将其递归地分割成两个非空子字符串,从而将其表示为二叉树。下面是s1 = "great"的一个可能表达: great / \ gr eat / \ / \g r e at / \ a t在攀爬字符串的过程中,我们可以选择其中任意一个非叶节点

2016-08-09 15:12:06 9865 7

原创 Miscellaneous | 无处可去意味着随处可去,所以你只需游走在星空下

我们每一个人都渴望成就自我,并且,我们还希望自己所做的事相对于他人来说能够做的更好,哪怕好的程度只有1%或2%。我们的学习,阅读,不断地从过往经验中被整理,成为新的经验。我们花费了巨大的精力去担忧额外的几个百分点,以至于形成潜偏见的脑袋意识,从而遮挡了我们的视线,无法看得更远,更大的潜力。”即使是象棋界的大师级人物,他们也不能看到赢得胜利的最佳途径,因为那个他们熟知的解决办法已经控制了他们的思

2016-08-07 10:45:28 8009 8

原创 Classical algorithm | RSA算法原理解析

此博文主要介绍RSA算法的数学基础,具体算法步骤由于篇幅问题会酌情简略最近挺多人问我RSA算法的,但由于所需的数学知识有好几个而不能当场详细说明,因为在此写一篇博文:RSA算法的原理理解,需要先从4个数学知识开始说明,:一:欧拉定理如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立:也就是说,a的φ(n)次方被n除的余数为1。或者说,a的φ(n)次

2016-08-05 18:48:55 11125 7

原创 Arithmetic problem | 找到数组中滑动窗口内的最大值

题目如下:给出一个可能包含重复的整数数组,和一个大小为 k 的滑动窗口, 从左到右在数组中滑动这个窗口,找到数组中每个窗口内的最大值。O(n)时间,O(k)的额外空间样例给出数组 [1,2,7,7,8], 滑动窗口大小为 k = 3. 返回 [7,7,8].解释:最开始,窗口的状态如下:[|1, 2 ,7| ,7 , 8], 最大值为 7;然后窗

2016-08-03 20:27:03 12024 6

原创 Arithmetic problem | 从数组选K个数位于原数组相对位置,求K个数的最大数

题目如下:给出两个长度分别是m和n的数组来表示两个大整数,数组的每个元素都是数字0-9。从这两个数组当中选出k个数字来创建一个最大数,其中k满足k 。选出来的数字在创建的最大数里面的位置必须和在原数组内的相对位置一致。返回k个数的数组。你应该尽可能的去优化算法的时间复杂度和空间复杂度。样例给出 nums1 = [3, 4, 6, 5], nums2 = [9,

2016-08-01 19:50:45 9130 8

原创 Arithmetic problem | 找二维矩阵权值为1的最大矩形面积

题目如下:给你一个二维矩阵,权值为False和True,找到一个最大的矩形,使得里面的值全部为True,输出它的面积。样例给你一个矩阵如下[ [1, 1, 0, 0, 1], [0, 1, 0, 0, 1], [0, 0, 1, 1, 1], [0, 0, 1, 1, 1], [0, 0, 0, 0, 1]]输出6解题思路:没接触

2016-07-28 11:50:17 14376 8

原创 Arithmetic problem | 求两个排序数组的中位数

题目如下:两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。样例给出数组A = [1,2,3,4,5,6] B = [2,3,4,5],中位数3.5给出数组A = [1,2,3] B = [4,5],中位数 3解题思路:【注意,下述所说的中位数是思维上面的中位数位置,并不是真正的数组中位数。

2016-07-26 08:44:43 9869 6

原创 Arithmetic problem | 给定 l, r, k,求在 [l, r] 区间中,所有 f(x) = k 的 x 的和

题目难度一般,题目如下:给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1,定义交错和函数:f(x) = a0 - a1 + a2 - ... + ( - 1)n - 1an - 1例如:f(3214567) = 3 - 2 + 1 - 4 + 5 - 6 + 7 = 4给定 l, r, k,求在

2016-07-22 20:09:18 11406 9

原创 Arithmetic problem | 求出 N 座大楼的外轮廓线

这题目还是有一定难度,题目如下:水平面上有 N 座大楼,每座大楼都是矩阵的形状,可以用三个数字表示(start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出 N 座大楼的外轮廓线。外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。

2016-07-21 16:44:34 12056 9

原创 Arithmetic problem | 海拔图最多能接住多少(面积)雨水

最近发现一道挺有趣的算法题,题目如下:给出 n 个非负整数,代表一张X轴上每个区域宽度为 1 的海拔图, 计算这个海拔图最多能接住多少(面积)雨水。样例如上图所示,海拔分别为 [0,1,0,2,1,0,1,3,2,1,2,1], 返回 6.解答时产生了2个思路1:如果p点为最高点,那么p点左边与右边必会出现比p点低的海拔。(此思路错误,因为高

2016-07-18 09:54:24 21945 11

编程珠玑.pdf

2016-08-28

空空如也

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

TA关注的人

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