随笔分类 -  C/CPP学习

摘要:我一开始没想太多,觉得把标准库里现有的数据结构拼一下,完全就可以了,这是我的代码:class MinStack {private: multiset sortedElems; list stack;public: void push(int x) { sort... 阅读全文
posted @ 2015-08-11 02:26 wu_overflow 阅读(179) 评论(0) 推荐(0)
摘要:把这个像复杂了,因为之前判断链表是否回文的经验,想从递归的延迟求值的特性来从两个链表的终点递归来确定交集的头结点,甚难。后来看了一位朋友的博客,明白了原来是只要找第一个相同的头结点就行了,那这个就简单了。代码如下:ListNode *getIntersectionNode(ListNode *hea... 阅读全文
posted @ 2015-08-11 00:34 wu_overflow 阅读(413) 评论(0) 推荐(0)
摘要:uint32_t reverseBits(uint32_t n) { auto strBits = bitset(n).to_string(); return static_cast(bitset(string(strBits.crbegin(), strBits.crend())).t... 阅读全文
posted @ 2015-08-07 16:30 wu_overflow 阅读(178) 评论(0) 推荐(0)
摘要:void rotate(vector& nums, int k) { if (nums.empty() || k == 0 || nums.size() == 1){ return; } k %= nums.size(); vector newNums(... 阅读全文
posted @ 2015-08-07 15:40 wu_overflow 阅读(130) 评论(0) 推荐(0)
摘要:bool isHappy(int n) { // If not happy, it will finally recycle in the checkList. array checkList{4,16,37,58,89,145,42,20}; auto caculate ... 阅读全文
posted @ 2015-08-06 15:24 wu_overflow 阅读(282) 评论(0) 推荐(0)
摘要:链表和树都自带递归特性,我很喜欢。这一题很简单,有意思的是我是先把内部的 lambda 表达式写出来之后才发现可以直接用这个函数本身做递归。ListNode* removeElements(ListNode* head, int val) { if (head == nullptr){ ... 阅读全文
posted @ 2015-08-06 13:53 wu_overflow 阅读(132) 评论(0) 推荐(0)
摘要:bool containsNearbyDuplicate(vector& nums, int k) { unordered_map> numIndexListDic; for (size_t i = 0; i {i}; } else{ a... 阅读全文
posted @ 2015-08-05 12:35 wu_overflow 阅读(157) 评论(0) 推荐(0)
摘要:我自己的方法是用的递归,毕竟也是接触了一点点点点点点 scheme 的骚年是吧,代码如下:ListNode* reverseList(ListNode* head) { if (head == nullptr){ return nullptr; } ListN... 阅读全文
posted @ 2015-08-04 17:15 wu_overflow 阅读(164) 评论(0) 推荐(0)
摘要:bool containsDuplicate(vector& nums) { return !(nums.size() == unordered_set(nums.cbegin(), nums.cend()).size());} 阅读全文
posted @ 2015-08-04 08:15 wu_overflow 阅读(290) 评论(0) 推荐(0)
摘要:class Stack {private: queue que;public: // Push element x onto stack. void push(int x) { que.push(x); } // Removes the eleme... 阅读全文
posted @ 2015-08-04 07:47 wu_overflow 阅读(145) 评论(0) 推荐(0)
摘要:class Queue {private: stack in; stack out; void reverseStackToOut() { auto size = in.size(); for (size_t i = 0; i < size... 阅读全文
posted @ 2015-08-03 22:28 wu_overflow 阅读(186) 评论(0) 推荐(0)
摘要:def summary_ranges(nums) summary = []; if nums.size == 0 return summary end if nums.size == 1 return summary #{nums[i - 1]}"... 阅读全文
posted @ 2015-08-03 22:10 wu_overflow 阅读(203) 评论(0) 推荐(0)
摘要:思路很简单,出口是空节点,先翻转子节点,再返回。TreeNode* invertTree(TreeNode* root) { if (root == nullptr){ return root; } invertTree(root->left); ... 阅读全文
posted @ 2015-08-03 20:26 wu_overflow 阅读(230) 评论(0) 推荐(0)
摘要:我的思路很简单,就是这样:bool check(int n){ while (n != 2) { if (n % 2 != 0) { return false; } n /= 2; } return true;}boo... 阅读全文
posted @ 2015-07-30 17:54 wu_overflow 阅读(253) 评论(0) 推荐(0)
摘要:这个其实并不难,只是前期有点恶心,因为可能两边都没小数点,又可能只有一边有小数点,还有可能两边都有,真尼玛麻烦死了。我的策略很简单,先是根据传入的 string 把它按照小数点用递归的方法分割成若干段,存入容器中,再用迭代的方法比较两个容器就行了。那么怎么处理有时可能没有小数点的情况呢?我的解决办法... 阅读全文
posted @ 2015-07-30 11:38 wu_overflow 阅读(209) 评论(0) 推荐(0)
摘要:要判断是否是回文链表这本身不难,难就难在对那两个复杂度的要求太恶心了。我一开始的想法是先找出链表的中点,再向两边遍历,以右结点为空作为循环结束的条件。感觉挺好哈,可是这特么是单向链表。然后我琢磨像 12321 这样的有一个特点,就是 1 + 3 = 2 + 2 = 3 + 1 觉得我特么简直就是天才... 阅读全文
posted @ 2015-07-28 23:11 wu_overflow 阅读(468) 评论(0) 推荐(0)
摘要:这道题一开始我有点迷,有点搞不清平衡树的意思,虽然查了百度百科,但还是觉得不是十分的透彻,这让我耽误了许多时间。后来在看了一些博客后,我突然醒悟,什么是平衡二叉树?就是头结点的两个子树是平衡二叉树,且两个子树高度不超过 1。这句话就是一个递归。定义平衡二叉树已经确定可以用递归来处理,那么高度怎么求呢... 阅读全文
posted @ 2015-07-27 00:58 wu_overflow 阅读(215) 评论(0) 推荐(0)
摘要:这个问题对我而言,难点就是当我用递归函数遍历各个结点时,不同子树的同一层结点怎样让他们保存在同一个容器里。保存在同一个容器里说明他们有共同的属性,没错,就是层数。而层数又相当于就是返回值的索引,那就简单了,就让他们存在索引相同的数组里。那么就又衍生了一个问题,就是保存在同一个索引的数组的前提是存在这... 阅读全文
posted @ 2015-07-25 23:35 wu_overflow 阅读(265) 评论(0) 推荐(0)
摘要:这个问题的思路就是,通过后序遍历找到头结点,然后在中序遍历中划分子树, 再对子树执行相同的操作,直至子树为空。而我之前的方法是在细节上比较粗(wu)暴(nao) 因此效率过于低下。更详细的过程就是,根据后序遍历找到头结点,再在中序遍历中划分子树,而根据中序遍历中划分的子树大小,又可以作为偏移量来对后... 阅读全文
posted @ 2015-07-24 18:36 wu_overflow 阅读(446) 评论(0) 推荐(0)
摘要:long long unsigned factorial(long long unsigned num){ return num factorial; factorial = [&factorial](decltype(num) n){return n < 2LL? 1LL : (fa... 阅读全文
posted @ 2015-07-17 00:20 wu_overflow 阅读(217) 评论(0) 推荐(0)