自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Leetcode: House Robber

class Solution {public: int rob(vector &num) { if (num.empty()) { return 0; } if (num.size()==1) { return num[0]; } int first = num[0]; int second = num[1]; int res = max(first, seco

2015-04-01 00:07:02 441

原创 LeetCode: Minimum Window Substring

就题目里那点描述,根本说不清需求,完全是一个个case调出来的。。。bool isWindow(array& flags, array& counter){ for (int i = 0; i < 256; i++){ if (flags[i]!=0 && counter[i]<flags[i]){ return false; } } return true;}

2015-03-13 00:53:45 468

原创 LeetCode: Reverse Bits

uint32_t reverseBits(uint32_t n) { uint32_t a = 0x80000000; uint32_t b = 0x1; while (a>b){ uint32_t atmp = n&a; uint32_t btmp = n&b; if (atmp != 0){ n = (n|b); } else{ n = (n&~b)

2015-03-09 23:56:40 773

原创 LeetCode: Repeated DNA Sequences

一定要用gcc调试。。。贪图vs的编辑方便,在本机上都过的case就是提交不能过。。。 换了gcc才发现问题。static const char digit2char[4] = { 'A', 'C', 'G', 'T' }; //A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,Tstatic con

2015-03-06 01:35:17 389

原创 LeetCode: Rotate Array

......具体可以看stl_algo.h,有forward, bidirectional, random iterator版本。我不明白的是forward_iterator版本: _ForwardIterator __first2 = __middle; do { std::iter_swap(__first, __first2)

2015-03-05 22:11:12 272

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-03-05 00:42:22 300

原创 为什么rvalue reference是lvalue

gcc-4.9.2\libstdc++-v3\include\bits\stl_vector.h的代码: /** * @brief %Vector move constructor. * @param __x A %vector of identical element and allocator types. * *

2015-01-29 23:47:15 478

原创 Effective Modern C++ 笔记 第七章 The Concurrency API

Item 35: Prefer task-based programming to thread-based. 241Item 36: Specify std::launch::async if asynchronicity is essential. 245Item 37: Make std::threads unjoinable on all paths. 250Item

2015-01-29 01:00:41 530

原创 LeetCode: Dungeon Game

int calculateMinimumHP(vector > &dungeon) { int m = dungeon.size(); int n = dungeon[0].size(); vector> results; for (int i = 0; i < m; i++){ results.push_back(vector(n, 0)); } for (int i = m -

2015-01-23 00:27:12 735

原创 Effective Modern C++ 笔记 第六章 Lambda Expressions

Item 31: Avoid default capture modes.Item 32: Use init capture to move objects into closures.Item 33: Use decltype on auto&& parameters to std::forward them.Item 34: Prefer lambdas to

2015-01-22 22:57:17 454

原创 LeetCode: Largest Number

string largestNumber(vector &num) { string result; if (num.size()==0){ return result; } bool allZero = true; vector strNum; for (auto& i:num){ strNum.push_back(to_string(i)); if (i != 0){

2015-01-20 00:23:47 398

原创 LeetCode: Binary Tree Postorder Traversal

vector postorderTraversal(TreeNode *root) { vector res; if (!root){ return res; } stack nodes; TreeNode* cur = root; TreeNode* pre = NULL; nodes.push(cur); if (cur->right){ nodes.push(cur-

2014-12-05 00:02:28 257

原创 LeetCode: Binary Tree Preorder Traversal

vector preorderTraversal(TreeNode *root) { vector res; if (!root){ return res; } stack nodes; nodes.push(root); while (!nodes.empty()){ TreeNode* cur = nodes.top(); nodes.pop(); res.push

2014-12-04 23:58:15 263

原创 LeetCode: Reorder List

很简单,就是最中间的node处理要注意下。。。直接代码。ListNode* reverseList(ListNode* head){ if (!head){ return NULL; } if (!head->next){ return head; } ListNode* pre = NULL; ListNode* cur = head; while (cur->next

2014-12-04 20:48:16 224

原创 LeetCode: Merge Two Sorted Lists

随手点进去forum, 看了两个答案,差不多的,都是一边merge value一边new ListNode。。。 难道不看题么?Merge two sorted linked lists and return it as a new list. The new list should be made bysplicing together the nodes of the first tw

2014-12-04 00:47:25 279

原创 Effective Modern C++ 笔记 第四章 Smart Pointers

Item 18: Use std::unique_ptr for exclusive-ownership resource management.Item 19: Use std::shared_ptr for shared-ownership resource management.Item 20: Use std::weak_ptr for std::shared_pt

2014-12-02 00:50:33 451

原创 LeetCode: Intersection of Two Linked Lists

赶新鲜,和solution的解法不太一样,解三元一次方程组。。。简而言之,list A的长度是x+z, listB的长度是y+z. z为两个list共同部分的长度。把A reverse一下,可以得到x+y的值,然后算一下就都出来了。ListNode* reverseList(ListNode* head){ if (!head){ return NULL; } if (!

2014-11-28 01:14:02 392

原创 SFINAE 极简介绍

首先推荐讲SFINAE我认为最好的两个资料,一个是cppreferenceSFINAE,一个是channel9上Stephan T Lavavej讲的三个series:Core CPP,STL, Advacned STL其中的某一集。。。的确忘了是哪集了。这两个资料有深入有浅出,最重要的是讲明白了SFINAE的本质,而不是上来就一段代码告诉你这个就是SFINAE,看完了就看完了而已,完全和其他知识

2014-11-27 23:43:59 1272

原创 Effective Modern C++ 笔记 第五章:Rvalue References, Move Semantics, and Perfect Forwarding

前面4章慢慢补。。。因为想起来写笔记的时候已经读到第五章了。说白了,笔记什么的也不是很必要,Scott Meyers和以前一样,在每个item的最后列出了本item的要点,这就是笔记内容啊。。。第五章如标题,围绕rvalue references(右值引用)以及延伸出来的两个用途move semantics(移动语义),perfect forwarding(完美转发)来组织的。详细

2014-11-26 23:17:46 701

原创 LeetCode: Copy List with Random Pointer

题目很简单,直接贴答案:RandomListNode *copyRandomList(RandomListNode *head) { if (!head){ return NULL; } RandomListNode* cur = head; RandomListNode* result = new RandomListNode(head->label); RandomL

2014-11-25 22:35:55 299

原创 LeetCode: Max Points on a Line

这个设计test case是个好题目。本来的想法是以斜率为key,做hashtable计数,试了几次行不通。似乎改造下这个方案也是可行的。后来干脆按照line来计数。最主要的是点重复这个事情不好弄,干脆吧点集预处理下。发现leetcode论坛里有个类似的思路,不过那个解法错了。代码有点丑,如下:struct Point { int x; int y; Point() :

2014-11-25 20:54:03 270

原创 LeetCode: Maximum Product Subarray

只贴个solution,很容易看懂。jianeryan int maxProduct(int A[], int n) { if (n == 1){ return A[0]; } int maxV = A[0]; int minV = A[0]; int result = A[0]; for (int i = 1; i <

2014-11-21 00:30:09 364

原创 LeetCode: Single Number II

人类解法我就不说了,最基础的

2014-11-20 23:48:35 338

原创 LeetCode: LRU Cache

class LRUCache{public:typedef list::iterator ListIt; LRUCache(int capacity):_capacity(capacity) { _data.reserve(_capacity+1); } int get(int key) { auto it = _data

2014-11-20 01:00:46 356

原创 容器的find()和find()const是怎样重载的

今天看到再简单不过的一段代码了:

2014-11-19 23:53:56 501

原创 int i = -2147483648 后面的事情

微博上看到的,为啥INT_MIN=-INT_MAX-1。翻查了下,发现还是有点需要搞清楚的地方,记录如下。编译器为gcc 4.8.2. C++规范为n3797先看代码: auto a = -2147483648; auto b = 2147483648; auto c = 2147483647; cout <<a<<typeid(a).name()<<

2014-11-19 23:25:51 2339

原创 科教及探索节目摘要

BBC Horizon. NHK. PBC Nova/FrontLine等等。

2014-11-12 22:33:39 792

空空如也

空空如也

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

TA关注的人

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