- 博客(257)
- 资源 (9)
- 收藏
- 关注
原创 leetcode笔记:H-Index
给定一个数组,记载了某研究人员的文章引用次数(每篇文章的引用次数都是非负整数),编写函数计算该研究人员的h指数。
2016-02-01 15:31:09 4265 3
原创 leetcode笔记:Patching Array
题目的大意是,给定一个数组nums和一个数n,求添加最少的数使得区间[1, n]中的每个数都可以由数组nums中元素累加组成。
2016-01-31 22:18:01 2492
原创 leetcode笔记:Perfect Squares
该题目的大意是,给出一个目标整数,算出由完全平方数累加得到目标整数的最小个数。比较好的解决方法是使用动态规划。
2016-01-29 23:57:49 1501
原创 leetcode笔记:Reverse Bits
题目的要求比较简单,输入一个32位的无符号整数,根据其二进制表示,输出与其二进制相对称的无符号整数。题目也给出了一个例子。
2016-01-29 17:29:56 1522
原创 leetcode笔记:Word Break
如果使用递归,会超时。这时使用动态规划即可解决问题,即将源字符串s从开始到结尾,分解成各个子串进行操作,对于这类字符串组合问题,需要掌握类似状态转移方程。
2016-01-25 23:48:08 1545
原创 leetcode笔记:Move Zeroes
题目的意思很明确,给定一个数组,将非零元素调整到前面,零元素放在数组后面,要求原位操作并使用尽量少的操作次数。
2016-01-23 11:41:42 1410
原创 个人总结的一些C/C++编码规范
对于不同的编程语言来说,具体的编码规范可以有很大的不同,但是其宗旨都是一致的,就是保证代码在高质量完成需求的同时具备良好的可读性、可维护性。例如我们可以规定某个项目的C语言程序要遵循这样的规定:变量的命名,头文件的书写和#include 等等。
2016-01-22 11:42:25 5592 22
原创 leetcode笔记:Range Sum Query - Mutable
题目在Range Sum Query - Immutable一题的基础上增加的难度,要求在输入数组nums后,能够修改数组的元素,每次只修改一个元素。同样要实现求数组的某个区间和的功能。
2016-01-21 01:06:07 4858
原创 leetcode笔记:Range Sum Query - Immutable
给定一个数组nums,求出下标i和j之间元素的和,这里假设i一定是小于或等于`j`的,且数组nums一般是不变的。
2016-01-20 23:45:27 1705
原创 leetcode笔记:Divide Two Integers
题目的意思简单明了,就是要求不使用乘法、除法和取余mod,输入两个整数,输出除法操作的结果。
2016-01-20 22:47:48 1416
原创 leetcode笔记:Find Median from Data Stream
该题的经典做法是,维护一个最大堆和一个最小堆。最大堆存的是截至目前为止较小的那一半数,最小堆存放的是截至目前为止较大的那一半数,这样中位数只有可能是堆顶或者两个堆顶所对应两个数的平均值。
2016-01-14 22:02:25 1573 1
原创 leetcode笔记:Bulls and Cows
该题即是猜数字(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。
2016-01-13 21:02:28 2081
原创 leetcode笔记:Bulb Switcher
题目大意是,有n只初始处于关闭状态的灯泡。你首先打开所有的灯泡(第一轮)。然后,熄灭所有序号为2的倍数的灯泡。第三轮,切换所有序号为3的倍数的灯泡(开着的就关掉,关着的就打开)。第n轮,你只切换最后一只灯泡。计算n轮之后还有几盏灯泡亮着。
2016-01-13 16:23:43 1490
原创 leetcode笔记:Integer to English Words
题目的要求很简单,将一个整数翻译为英文说法。根据提示我们知道,数字的读法是有规律的,只需每3位作一次翻译处理即可。在循环之前,把可能用到的字符串(0-9、10-19、20、30、40、...、90等数的英语)进行归类,放在几个数组里,分情况使用。在累加字符串时注意空格的使用。
2016-01-12 18:51:24 1551
原创 leetcode笔记:Pascal's Triangle II
该题要求只输出第k行的元素值,并且要求空间复杂度为`O(k)`,因此,采用的方法是只使用一个定长的数组,用于存放每一行的元素值,对于每个新的行,可对原先存放的行从后往前扫描,主要分为以下三种情况:最后一个元素,直接等于1;对于下标为i的中间元素,有:`result[i] = result[i-1] + result[i]`;第一个元素,直接等于1;
2016-01-11 19:40:21 1204 1
原创 leetcode笔记:Product of Array Except Self
该题的大意是,给定一个整数数组,让我们返回一个新数组,对于新数组中每一个位置上的数,是原始数组其他位置上的数的乘积。题目限定了时间复杂度:O(n),而且对空间复杂度也有要求。
2016-01-10 19:25:49 1414 1
原创 leetcode笔记:Ugly Number II
从1开始的丑数为:1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, … 该题的大意是,输入一个正整数n,返回第n个丑数。
2016-01-10 18:42:23 2314
原创 leetcode笔记:Ugly Number
该题的大意是编写一个函数,判断输入的整数是否为丑数。我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。题目也提到,习惯上把1也当做是一个丑数。
2016-01-10 18:09:47 1390
原创 leetcode笔记:Power of Three
题目的大意很简单,给出一个整数,判断这个整数是不是3的整数次幂。下面提示尽量不适用循环和递归来实现,因此这里给出两种实现方法,其中第一种循环方式的耗时更少。
2016-01-10 17:17:13 3300
原创 leetcode笔记:Validate Binary Search Tree
这道题的大意是,判断一个二叉查找树是否合法的,这个可以根据二叉查找树的定义来进行判断,即一个内部结点的值要大于左子树的最大值,同时要小于右子树的最大值。
2016-01-07 23:50:31 1316
原创 leetcode笔记:Leetcode Letter Combinations of a Phone Number
题目的大意是,在手机上按字母,给出所按的数字键,问所有的按的字母的情况。该题使用DFS即可完成,难度不大。
2016-01-05 22:00:33 1335
原创 leetcode笔记:Convert Sorted List to Binary Search Tree
这道题只要将列表转化为一个数组,就可以使用和题目Convert Sorted Array to Binary Search Tree一样的方法来进行。
2016-01-04 00:50:33 1451
原创 leetcode笔记:Convert Sorted Array to Binary Search Tree
将二叉查找树进行中序遍历,就可以得到一个升序排序的数组,因此,一个已经排序的数组可以看做一个中序遍历得到的数组,要得到一个高度平衡的二叉查找树,可以使得左右子树的节点数尽可能相等
2016-01-02 21:40:17 1353
原创 leetcode笔记:Reverse Integer
反转一个整数,若为负数,则负号不变,然后反转负数。该题题设虽然简单,但隐藏一些陷阱,如反转后数字的溢出问题、低位为0时反转到高位时又怎么处理。这种题目目的不是为了考察某种算法,而是考察对各种边界条件是否考虑周全。这里的代码只是能Accept,不代表完美无缺。
2015-12-31 23:17:58 1493
原创 leetcode笔记:Sqrt(x)
该题要求实现求根公式,该题还算是比较简单的,因为只需返回最接近的整数,直接二分法即可。在实现的过程中还是有一些细节的,比如判断条件:x / mid > mid而不能是x > mid * mid,因为mid * mid会导致溢出。
2015-12-31 22:56:07 1373
原创 leetcode笔记:Subsets II
该题相比Subsets一题略有不同,该题在给定的数组中,允许出现重复的元素。但最后输出的排列不能有重复的组合。因此,在DFS时,使用一个数组temp来记录某个数是否被使用过即可。
2015-12-29 23:48:00 2200
原创 使用Python和Splinter实现12306火车票查询与抢票
有一段时间没有使用Python了,前几天经朋友提起一篇关于用Python实现抢火车票的文章,百度了实现抢火车票的技术细节,网上却有不少资料,也不是新鲜的东西。在了解了一些技术手段后,也尝试实现了一下,代码写得粗糙,纯当娱乐,本文在Windows系统下完成。
2015-12-29 21:00:26 30813 7
原创 leetcode笔记:Nim Game
你正在和你的朋友们玩下面这个Nim游戏:有一堆石头放在桌上,你每次可以从中拿走1到3颗。谁消除掉最后一个石头即为赢家。假设你是第一轮开始取石头。现在你们游戏中的每个人都有着非常聪明的头脑和绝佳的策略。写一个函数,对与一个给定的石头数目,算出你是否可以赢得这场比赛。
2015-12-29 00:35:35 2915
原创 leetcode笔记:Subsets
该题的大意是,给定一个集合,求出这个集合所有的子集(所谓子集,就是包含原集合中的一部分元素的集合)。可使用DFS递归嵌套。总共N层,时间复杂度为O(N^2)。我的做法是使用位运算,一个含有N个元素的数组有N^2个子集,因此该题目可转换为求数组的元素组合。使用一个N位二进制位表示数组nums的各下标出现与否,当某一位为1表示这次组合中出现当前下标所对应的元素,否则表示不选择当前下标元素。
2015-12-28 22:39:04 1793
原创 leetcode笔记:Partition List
题目的大意是,给定一个单链表和一个值x,把链表中小于x的放到x的前面,大于等于x的放到x的后面,每部分元素的原始相对位置不变。该题是一个普通的链表遍历的题目,需要注意的地方在于必须将链表的最后一个节点的下一个节点更新为null,不然链表会出现环,从而导致死循环的情况。
2015-12-27 01:59:37 2331
原创 leetcode笔记:Wildcard Matching
题目的大意是,给出两串字符串s和p,规定符号?能匹配任意单个字符,*能匹配任意字符序列(包括空字符序列)。如果两串字符串完全匹配则返回true。
2015-12-26 18:09:19 1978 1
原创 leetcode笔记:Search Insert Position
题目的大意是,给定一个已排序的数组和一个目标值target,如果在数组中找到该目标值,就返回这个目标值的元素下标。如果没有找到,就返回target应该插入到该数组中的位置下标。这个过程中,假设该数组中没有重复元素。该题和Search for a Range的解法类似,二分查找即可。
2015-12-25 20:13:10 1897 1
原创 leetcode笔记:First Bad Version
只需实现类似于Search for a Range一题的功能,判断坏版本的函数bool isBadVersion(version)题目已经提供,无需纠结如何操作,使用二分查找来解决问题。
2015-12-25 17:42:19 2336 1
基于SVM与人工神经网络的车牌识别OpenCV&C++实现
2015-05-29
模式识别 Matlab生成模式类
2015-03-13
Harris角点检测
2015-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人