- 博客(35)
- 收藏
- 关注
原创 【Erlang入门02】强大开发工具rebar3
在写这篇文章之前,我也有过考虑,是不是需要写语法,写案例,写其他基础的东西。但转念一下(因为懒),那些方面的资料还是很容易就可以寻找的,像是《Erlang编程指南》《Erlang OTP并发编程实战》《Erlang趣学指南》等等。但我看到的部分有一个通病就是,看完之后,我并不知道能做什么。Erlang并没有说专属的ide,因为类型不检查,我用idea写的时候最多给不注意的语法错误标个...
2018-06-27 10:08:44
4517
1
原创 【Erlang入门01】 Erlang的适合与不适合
学习Erlang也有一段时日了,说句实话,我一直在考虑,Erlang的优势到底是什么? 如果是参考书籍,比如说《Erlang编程指南》,那Erlang的优势就在于高并发和稳定性和轻量。按照部门老师的说法,即使是你的笔记本,也可以并行运行五位数的Erlang进程(轻量),而且,你完全不用考虑那些诸如死锁,线程池等等的复杂概念(高并发),Erlang的虚拟机早已帮你完成了...
2018-06-19 10:01:44
8798
8
原创 统计负数 --- lintcode832
点击打开原题已知:给定一个二维数组,二维数组从左往右是排序的,从上往下也是排序的,求其中负数个数。思路:考虑到减少时间复杂度,我们把每次找到的最后一个负数的纵轴下标作为下一次遍历的最大值(因为根据这个数组的排序方式,负数肯定集中在左上,且正负数切割线是 / 形状)public class Solution { /** * @param nums: the sorted matri...
2018-03-14 20:31:50
400
原创 三数之和 --- lintcode831
点击打开原题已知:给定一个数n,求所有满足 a^2 + b^2 + c^2的abc组合的数目思路:题目唯一算得上难点的就是如何保证唯一性,即计算过123,就不计算213这样的组合。方法就是假设a<b<c即可。public class Solution { /** * @param n: an integer * @return: the number of ...
2018-03-14 20:26:22
243
原创 公交车站 --- lintcode825
点击打开原题已知:有各种各样的公交车路线,给定起点站点和终点站点,求最少换乘的次数,如果无法到达就返回-1思路:首先找到所有包含初始站点的公交车,再找到所有包含结束站点的公交车,将两者送入函数处理,获取最少转乘次数。如果找到转乘次数为1的,则直接返回1,如果找不到,就计算转乘次数为2的情况(假设从公交车a能转乘到b,则返回2)。如果还不行,则计算转乘为3的情况(假设包含七点的公交a能到达bcd,查...
2018-03-14 20:17:03
601
原创 落单的数IV --- lintcode 824
点击打开原题已知:给定一个特殊的数组,其中只包含一个单独的数,其他的数字都是成双且相互靠近出现的。求出这个单独的数。思路:先排除特殊情况,如果第一个数和第二个数不等,那么直接返回第一个数,倒数第一个和倒数第二个也同理。然后,偶数位X上的数字必须与奇数位X+1上的数字相等,如果不相等,那么X上的数字就是我们要找到答案。11 22 33 44 55 67 78 89 9public class Sol...
2018-03-09 15:17:36
259
原创 矩形 --- lintcode 820
点击打开原题已知:给定我们一个点的集合,找出其中是否存在四个点能构成一个矩形思路:这道题的思路,往简单了想,我是这么考虑的:一个矩形的四个点分为左上右上左下右下,我们遍历点集合的所有点,假设当前点是左上,找到满足要求的所有左下和右上,然后左下和右上配对产生右下,判断右下是否在点集合之中,如果存在,则返回“YES”,如果遍历完都不存在,就返回“NO”/*public class Point { ...
2018-03-09 14:10:03
302
原创 单词排序 --- lintcode 819
点击打开题目上面的超链接链向原题,原题的题意是给定新的字母表,让我们用新字母表的顺序给给定的字符串按照字典排序法排序。思路:其实题意就是字母的一对一替换,将得到的字符串用原来的字母表示出来,将结果进行排序后,反编译回现在的字母表示即可。代码如下:public class Solution { /** * @param alphabet: the new alphabet ...
2018-03-08 16:44:44
380
原创 限制条件子集 --- lintcode 818
已知:给定一个数组,给定一个target,求满足下面条件的所有子集个数:条件:子集的最小值和最大值要小于给定的target。示例:给定nums = [1,5,2,4,3],给定target为5,返回为5.五个子集如下: [1] [2] [1,2] [1,3] [1,2,3]思路:首先,子集不能为空:如果子集只有一个数,那么计算下原数组中大小不到target一半的数,这是结果的第一个来源。如果子集有...
2018-03-08 15:57:42
490
原创 与或和 --- lintcode 782
这个问题本身思考过还是很简单的,但是起初还是让我费了一番脑筋,因此写出来与大家分享,希望对您有所帮助。已知:// 给 n 个非负整数,请你求出最大或和,最小或和,最大与和,最小与和这四个数之和。// 注意事项: 不能不选,至少选一个数思路:特性: a|b ≥a 且 a|b≥b 即 a|b ≥a, a&b≤a 且 a&b≤b 即 a&b≤b (我们假设a ≥ b)解释: 对...
2018-03-04 11:51:09
254
原创 连续子数组求和
LINTCODE 402 - 连续子数组求和今天,求LINTCODE娘给我题目的时候,给了我这么一个充满回忆的题目,这个题目可谓是倾倒众生,一遍又一遍地出现,居家旅行面试必备,我也就着记忆里的印象,将当初看到这个最佳解法时的惊艳写出来和各位读者分享一下。=================================================================
2018-01-08 15:39:47
450
原创 Monotone Increasing Digits
Lintcode 743转过头去翻的时候,忽然发现lintcode刷新了题目,也就是这道题,最小的单调递增数。已知:给定一个数N,求小于等于N的最大的递增数示例:Given N = 10, return 9Given N = 12345, return 12345Given N = 10000, return 9999思路:首先,我们找到整个数字中第一个非递增的地方 ( 以1254为例
2017-12-31 16:29:13
253
原创 加一
Lintcode 407这道题也是Lintcode娘随机给我挑的一道题目。已知:给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小进行排列,最大的数在列表的最前面。示例:给定 [1,2,3] 表示 123, 返回 [1,2,4].给定 [9,9,9] 表示 999, 返回 [1,0,0,0].思路:题意还是比较清晰的。思路的话,就是模拟我们自身思考的过程:
2017-12-29 20:49:23
229
原创 落单的数III
Lintcode 84这一天,我对着lintcode说,随便给我来一题吧!然后给了我这个题目ヽ(・ω・´メ)已知:给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。思路:这道题中,所有数字出现的次数只能为1或者2,且只有两个1,剩下均为2。基础思路其实也很简单,我们遍历数组中的所有数据,并生成一个结果的List。 - 如果List中已经含有当前遍历的元素,则将l
2017-12-29 20:16:21
242
原创 单词拆分II
Lintcode 582已知:给一字串s和单词的字典dict,在字串中增加空格来构建一个句子,并且所有单词都来自字典。返回所有有可能的句子。示例:给一字串lintcode,字典为["de", "ding", "co", "code", "lint"]则结果为["lint code", "lint co de"]。思路: 用动态规划的思路,这道题目按照递归是很容易解决的。首先,我们找到字典dic
2017-12-22 15:41:27
1154
原创 大岛的数量
Lintcode 677已知:给一个布尔类型的二维数组, 0 表示海, 1 表示岛。如果两个1是相邻的,那么我们认为他们是同一个岛.我们只考虑 上下左右 相邻.找到大小在 k 及 k 以上的岛屿的数量示例:给一个二维数组:[ [1, 1, 0, 0, 0], [0, 1, 0, 0, 1], [0, 0, 0, 1, 1], [0, 0, 0, 0, 0], [0, 0, 0
2017-12-21 22:14:00
351
原创 Sum of first K even-length Palindrome numbers
lintcode 744已知:Given a integer k, find the sum of first k even-length palindrome numbers.Even length here refers to the number of digits of a number is even.示例:Given k = 3, return 66 // 11 + 22 + 33 =
2017-12-21 14:40:17
345
原创 滑动窗口内唯一元素数量和
Lintcode 692已知:给一个数组和一个滑动窗口的大小, 求每一个窗口内唯一元素的个数和示例:给一个数组 nums = [1, 2, 1, 3, 3] 和 k = 3第一个窗口为 [1, 2, 1], 只有 2 是唯一的, 计数为 1.第二个窗口为 [2, 1, 3], 所有的元素都是唯一的, 计数为 3.第三个窗口为 [1, 3, 3], 只有 1 是唯一的, 计数为 1.总数为 1
2017-12-20 15:38:46
450
转载 丑数 和 超级丑数
丑数写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。这里就不多赘述思路了,因为1也是一个丑数,但判断的时候可以不用特例化。public class Solution { public boolean isUgly(int num) { if(num == 0){
2017-12-18 14:47:19
1418
原创 所有子集的和
Lintcode 730已知:给一整数 n, 我们需要求前n个自然数形成的集合的所有可能子集中所有元素的和。示例:给出 n = 2, 返回 6可能的子集为 {{1}, {2}, {1, 2}}. 子集的元素和为 1 + 2 + 1 + 2 = 6给出 n = 3, 返回 24可能的子集为 {{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}子集
2017-12-13 21:54:50
2325
原创 Find Elements in Matrix
Lintcode 737已知: 给定一个二维数组,求出在二维数组每一行都出现过的一个数字(假定这个数字是唯一的) 示例:[ [2,5,3], [3,2,1], [1,3,5]]//返回值为3思路: 这个问题本身应该难度不高,难点应该也是在于如何把多层循环转换成递归。我们可以假定当前为第一行的第N个数,然后从第二行找有没有相等的数,如果有,则递归至第三层,依次递归到最后一层仍然为
2017-12-13 21:30:07
228
原创 Digit Divide Numbers
Digit Divide Numbers这是一道笔者纠结了很久的题,Lintcode编号742,经过一系列处理终于通过了测试,也算完成了一项小小的心愿,在这里就分享下解题的过程和思路。已知:Digit Divide Numbers 是这样一类数,以128举例,128能整除1,2,8,所以这个数符合要求,也就是说一个数能被自身所有整数整除即可。 限定:0<=L<=R<=2^31-1,R-L<=10^
2017-12-13 15:35:11
364
原创 Coin Change II
Coin Change – Lintcode 740已知: 给我们一个总额amount和一个字符串,字符串内的数字可以循环使用,求让数字总和为amount的数字串的总个数 示例: amount = 10,coins[] = { 2 , 3 , 8 }, 结果为3 8 = 8 8 = 3 + 3 + 2 8 = 2 + 2 + 2 + 2思路: 这是一道典型的动态规划问题,和普通自
2017-12-10 17:44:20
344
原创 中国剩余定理
中国剩余定理 Lintcode 727已知: 给出两个数组 num[0..k - 1] 和 rem[0..k - 1]. 在数组num[0..k - 1]中, 所有的元素都是互质的( gcd 为 1 ). 我们需要找到满足下列条件的最小正数 x: x % num[0] = rem[0], x % num[1] = rem[1], ......................
2017-12-09 00:37:52
561
原创 24点问题
24点 Lintcode 739已知: 给定四个1-9的数字,使用运算符加减乘除和括号,使得运算结果为24. 求结果为24的可能性. 示例: 4, 1, 8, 7 => 8 * (7 - 4) * 1 = 24 true 1, 1, 1, 2 false 3, 3, 8, 8 => 8 / ( 3
2017-12-08 12:43:42
2663
原创 删除数字
删除数字 Lintcode 182已知: 给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。 (找到删除 k 个数字之后的最小正整数, 并且 N <= 240, k <= N)示例: 给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4 返回一个字符串 “12”思路: 复杂的
2017-12-06 22:06:34
682
原创 背包问题VI
背包问题VI Lintcode 564已知: 给出一个都是正整数的数组 nums,其中没有重复的数。从中找出所有的和为 target 的组合个数。一个数可以在组合中出现多次。数的顺序不同则会被认为是不同的组合。示例: 给出 nums = [1, 2, 4], target = 4[1, 1, 1, 1] [1, 1, 2] [1, 2, 1] [2, 1, 1] [2, 2] [
2017-12-06 15:09:02
213
原创 区间求和II
已知: 在类的构造函数中给一个整数数组, 实现两个方法 query(start, end) 和 modify(index, value):对于 query(start, end), 返回数组中下标 start 到 end 的 和。对于 modify(index, value), 修改数组中下标为 index 上的数为 value.思路: 这题非常奇怪,因为难度系数是最高的,但是类结构
2017-12-06 14:02:33
410
原创 数组划分
数组划分 Lintcode 31已知: 给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。思路: 虽然题意的意思是数组本身也要进行调整,但是并没有做检查… 本题思路比较简单,代码如下:public class So
2017-12-05 17:35:54
283
原创 排列序号II
排列序号II - Lintcode198已知: 给出一个可能包含重复数字的排列,求这些数字的所有排列按字典序排序后该排列在其中的编号。编号从1开始。案例: 给出排列[1, 4, 2, 2],其编号为3思路: 我们用递归的方法,先求出以当前第一个数为基准,必然按字典顺序排序在当前数组之前的数量,然后求以第二个数为基准,以此类推直到最后一个数。具体解法:(以1,4,2,3为例) 1,4,2,3的
2017-12-05 16:00:36
521
原创 3个不同的因子
已知: 给一 正整数 n (1 <= n <= 10^18). 判断这个数是否正好只有 3 个不同的因子, 如果正好有 3 个不同的因子就返回 true, 否则返回 false 样例: 给出 n = 9, 返回 true 数字 9 正好有 3 个因子: 1, 3, 9, 所以返回 true. 给出 n = 10, 返回 false思路: 1 2 4 1 3 9 1 5 25 …刚好三个
2017-12-04 10:44:27
1435
原创 阶乘除法的最后一位数
前言这是笔者在lintcode的刷题的心路历程,希望对您有所帮助。阶乘除法的最后一位数 - 729已知: 给出两个数 A 和 B, 其中 B >= A. 我们需要计算结果 F 的最后一位数是什么, 其中F = B! / A!(1 <= A, B <= 10^18, A 和 B 非常大) 样例 : 给出 A = 2, B = 4, 返回 2 A! = 2 以及 B! = 24, F = 24
2017-12-04 10:25:13
784
原创 三数之和
前言这是笔者在lintcode的刷题经历,本着共享的原则分享自己的解题方法。三数之和系列题目1: 给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。三元组(a, b, c),要求a <= b <= c。结果不能包含重复的三元组。思路: 题目本身是很简单的,简单到我只有最朴素的想法。鉴于结果要求是排序的,因此思路具体如下:将原数组排
2017-12-02 14:53:23
325
原创 LintCode习题系列之解码方法
前言这是笔者在LintCode社区刷题的经历,希望思考的过程对读者有所帮助解码方法题目描述: 有一个消息包含A-Z通过以下规则编码 ‘A’ -> 1 直到 ‘Z’ -> 26 现在给你一个加密过后的消息,问有几种解码的方式实例: 12 : 1|2 代表AB,12代表L,共两种情况思路: 首先排除特殊情况: ①若输入的String为“”,则结果为0 ②若输入的String位数为1,则结
2017-12-01 02:03:30
625
原创 完美平方
给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, … )使得他们的和等于 n。你需要让平方数的个数最少。 举例: 给出 n = 12, 返回 3 因为 12 = 4 + 4 + 4。 给出 n = 13, 返回 2 因为 13 = 4
2017-11-30 17:00:20
489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人