- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 排序
一、快排int getRandom(int start, int end) { srand((int)time(0)); int idx = random() % (end - start + 1) + start; return idx;}int partition(int *a, int len, int start, int end) { int i
2016-04-07 10:06:00
383
原创 [leetcode-328]Odd Even Linked List
此题非常巧妙的一个写法ListNode* oddEvenList(ListNode* head) { if (head == nullptr || head->next == nullptr) { return head; } ListNode *odd = head, *even = head->next, *evenHead = even;
2016-04-05 22:38:44
332
原创 [leetcode-331]Verify Preorder Serialization of a Binary Tree
该题一共有三种解法,首先我们给出字符串分隔的函数,该函数在以下三个方法中均会用到:vector split(string input, char delimiter) { vector result; while (true) { int idx = input.find_first_of(delimiter); if (idx == -1) {
2016-04-05 18:40:01
375
原创 C++ 字符串分隔
虽然这个函数不难,在很多语言中都有函数实现,但C++中没有,所以现在写一个简单的例子。首先,在这里介绍两个函数find和find_first_of。一、find函数原型:size_t find (const string &str, size_t pos = 0) constsize_t find (const char *s, size_t pos = 0) const
2016-04-05 15:54:25
532
原创 [leetcode-334]Increasing Triplet Subsequence
既然来到了这里,小伙伴就肯定存在一些疑惑。如果你看过discuss你可能不知道为啥当遍历到min 最长上升子序列(Longest Increasing Subsequence)简称LIS,在给定字符串中查找最长的依次不递减的序列,返回其长度。比如,给定一个数组n = {4,7,6,5,1,9,2},那么最长的子序列就是1,5,7或者是1,5,6,返回的长度就是3。我们取一个数组vc,vc中
2016-03-30 22:07:24
275
原创 [leetcode-335]Self Crossing
这个题目需要分情况讨论,网上的解法都是leetcode discuss中的,下面是我的总结。对于数组x[],如果现在有某条线与第一条线x[0]相交,那么会是什么情况呢?1、第4条线与第一条线相交,即x[0]与x[3]相交2、第5条线与第一条线相交,即x[0]与x[4]相交3、第6条线与第一条线相交,即x[0]与x[5]相交如果x[0]与上述三条线都不相交,那么x[0]与x[5]之后
2016-03-30 20:49:59
313
原创 [leetcode-338]Counting Bits
谈到这个题目,其实还有一个题目是该题目的基础。题目:求一个int型数转化为二进制后其中1的个数。首先我们需要知道怎么判断一个数是否是2的次方,即其转化为二进制后只有一个1,代码:bool foo(int i) { return i & (i - 1);}然后,我们计算int型转化为二进制后有多少个1的代码:int countBit(int n) { int count
2016-03-30 19:12:42
471
原创 [leetcode-316]Remove Duplicate Letters
该题思路有两种,一种是将string当做stack处理,另一种是贪婪算法class Solution {public: string removeDuplicateLetters(string s) { bool inRes[26] = {false}; int counts[26] = {0}; for (auto
2015-12-15 13:08:31
1367
原创 copy和mutableCopy
copy和mutableCopyNSObject类有两个跟拷贝相关的方法——copy和mutableCopy。这两个方法都是返回一个id类型的对象,那么这两者之间有什么区别呢?根据官方文档解释,copy方法,返回copyWithZone方法返回的对象(Returns the object returned by copyWithZone:)。而mutableCopy方法,返回m
2015-12-03 22:11:08
440
原创 [leetcode-304]Range Sum Query 2D - Immutable
[leetcode-304]Range Sum Query 2D - Immutable
2015-11-13 19:48:43
1626
原创 [leetcode-302]Smallest Rectangle Enclosing Black Pixels
[leetcode-302]Smallest Rectangle Enclosing Black Pixels
2015-11-10 16:07:49
1618
原创 [leetcode-303]Range Sum Query - Immutable
[leetcode-303]Range Sum Query - Immutable
2015-11-10 12:54:13
523
原创 Reverse Linked List
1、题目链接:https://leetcode.com/problems/reverse-linked-list/内容:Reverse a singly linked list.2、分析该题目有多种解法:1)利用递归完成;2)直接对链表的每个节点进行反向操作;3)还可以对链表的每个节点进行插入操作,即将待反转的链表中的每个节点依次插入到另一个链表的头部,插入完成后的该链表即为反
2015-11-10 12:16:16
432
转载 面试题1 落单的数
问题详情 有2n+1个数,其中2n个数两两成对,1个数落单,找出这个数。要求O(n)的时间复杂度,O(1)的空间复杂度。进阶问题:如果有2n+2个数,其中有2个数落单,该怎么办?在线评测本题:http://www.lintcode.com/en/problem/single-number/解答 答:初阶:将2n+1个数异或起来,相同的数会抵消,异或的答案
2015-11-06 12:32:36
448
原创 转换字符串到整数
问题:实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。样例:"10" =>10"-1" => -1"123123123123123" => 2147483647"1.0" => 1分析:
2015-11-06 12:18:56
422
原创 有效数字
问题:给定一个字符串,验证其是否为数字。样例:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true分析:题目不难,到时笔记复杂,主要是要注意各种情况:1、正负号情况:一、正负号为第一位;二在指数e的后面;2、小数点:小数点可以为第一位;小数点只能出现一
2015-11-06 12:09:25
494
原创 寻找旋转排序数组中的最小值
问题:假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。分析:此问题不难,看代码就能懂了;代码:class Solution {public: int findMin(vector &num) { int l = 0, r = num
2015-11-05 21:33:55
350
原创 二分查找中term有重复的情况
二分查找算法虽然简单,但是遇到待查找的term重复的时候也会各种小问题。下面给出二分查找中遇到重复term时,第一个可插入位置和最后一个可插入位置的代码。第一个可插入位置:class Solution {public: int binarySearch(vector &array, int target) { if(array.size() == 0) {
2015-11-05 21:08:11
1631
原创 二进制中有多少个1
问题:计算在一个 32 位的整数的二进制表式中有多少个 1。样例:给定 32 (100000),返回 1。给定 5 (101),返回 2。给定 1023 (111111111),返回 9。分析:1、需要考虑是负数的情况,如果是负数,则二进制的第一位为1,首先需要处理这个1,即:num^0x800000002、然后计算剩下的1,依次检查该数转化为二进制时的每一位。即每
2015-11-05 20:41:26
2368
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人