刷题
文章平均质量分 70
100120101
太多 烦恼
展开
-
二进制中有多少个1
问题:计算在一个 32 位的整数的二进制表式中有多少个 1。样例:给定 32 (100000),返回 1。给定 5 (101),返回 2。给定 1023 (111111111),返回 9。分析:1、需要考虑是负数的情况,如果是负数,则二进制的第一位为1,首先需要处理这个1,即:num^0x800000002、然后计算剩下的1,依次检查该数转化为二进制时的每一位。即每原创 2015-11-05 20:41:26 · 2332 阅读 · 0 评论 -
华为机试1
asdasd原创 2016-08-17 13:41:48 · 331 阅读 · 0 评论 -
[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 · 320 阅读 · 0 评论 -
[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 · 363 阅读 · 0 评论 -
[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 · 258 阅读 · 0 评论 -
[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 · 453 阅读 · 0 评论 -
[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 · 298 阅读 · 0 评论 -
[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 · 1339 阅读 · 0 评论 -
[leetcode-304]Range Sum Query 2D - Immutable
[leetcode-304]Range Sum Query 2D - Immutable原创 2015-11-13 19:48:43 · 1568 阅读 · 0 评论 -
[leetcode-303]Range Sum Query - Immutable
[leetcode-303]Range Sum Query - Immutable原创 2015-11-10 12:54:13 · 505 阅读 · 0 评论 -
[lintcode]两个字符串是变位词
[lintcode]两个字符串是变位词原创 2015-11-10 20:49:56 · 1168 阅读 · 0 评论 -
[leetcode-302]Smallest Rectangle Enclosing Black Pixels
[leetcode-302]Smallest Rectangle Enclosing Black Pixels原创 2015-11-10 16:07:49 · 1588 阅读 · 0 评论 -
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 · 413 阅读 · 0 评论 -
寻找旋转排序数组中的最小值
问题:假设一个旋转排序的数组其起始位置是未知的(比如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 · 328 阅读 · 0 评论 -
转换字符串到整数
问题:实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。样例:"10" =>10"-1" => -1"123123123123123" => 2147483647"1.0" => 1分析:原创 2015-11-06 12:18:56 · 396 阅读 · 0 评论 -
有效数字
问题:给定一个字符串,验证其是否为数字。样例:"0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true分析:题目不难,到时笔记复杂,主要是要注意各种情况:1、正负号情况:一、正负号为第一位;二在指数e的后面;2、小数点:小数点可以为第一位;小数点只能出现一原创 2015-11-06 12:09:25 · 457 阅读 · 0 评论 -
华为机试2
asdfdsa原创 2016-08-17 14:44:45 · 400 阅读 · 0 评论