- 博客(73)
- 收藏
- 关注
原创 阿牛 - 陈奕迅
阿牛作词:林夕 作曲:雷颂德 演唱:陈奕迅 不能回头 多年前早名言 不能回头 可恨在 是我这一头蛮牛 多年来无法侍候 才和我分手 成婚之前一刻才赶到 难得你来通报才知道 往日共你追忆永远是后 怎能预计似这般难共你同携共老 你话只需肯做 差一刹与我拾回旧好 不甘心 尤其这新婚 就像玩牺牲 想抢过新娘 我差点讲真历史一刻早已将就伴侣转送别人 我说 别伤心 仍然恰当...
2018-08-24 21:15:28 870
原创 LeetCoden 62. Unique Paths
62. Unique Paths递归解法超时,需要用动态规划动态规划解法 int uniquePaths(int m, int n) { if (m <= 0 || n <= 0) { return -1; } vector<vector<int>> res...
2018-06-25 00:15:08 250
原创 LeetCode 55. Jump Game
55. Jump Game水平有限,这题没有意识到是贪心的题,用递归和动态规划分别写了一遍。前者报超时,后者报内存限制。正确代码 bool canJump(vector<int>& nums) { if (nums.empty()) { return false; } // tan...
2018-06-23 21:26:54 309
原创 LeetCode 31. Next Permutation
31. Next Permutation这题不会做。。。 找全排列的下一个序列 最笨的方法是把全排列求出来,然后排个序,再得出下一个全排列。 但是空间不允许。这题也提供了一个直接找全排列下一个序列的方法 1.从后往前遍历数组,找出非递增的那个下标x 2.如果找不到,就是全排列的第一个。 3.找到后,与A数替换 A数是指(x + 1)–>nums.end()这段下标中,比...
2018-06-11 21:09:46 183
原创 LeetCode 292. Nim Game
292. Nim Game感觉这题还是很有意义的。让我意识到,算法题,其实核心还是数学思想。 有时候做算法题,还需要有抽象能力,转化能力。解法理解: 题意理解到,只要最终剩下4个,而且轮到对面先抽的轮次,那么等对方抽完,自己再抽剩下的,就赢了。 所以只要第一次把4的余数数量石头抽走,接下来,对方无论抽几个,我们就补几个凑成4。这样就保证了在最终的轮次会剩下4个,而且是对方先抽。...
2018-06-11 16:13:05 166
原创 LeetCode 257. Binary Tree Paths
257. Binary Tree Paths1.这道题,一开始使用find_last_of的时候,想要匹配 ‘-‘,但是val可以是负数,所以匹配错误。 2.整型转化为字符串的方法:利用stringstreamstringstream ss;ss << root->val;string rval = ss.str();class BinaryTreePaths ...
2018-06-11 11:26:52 192
原创 LeetCode 290. Word Pattern
290. Word Patternclass WordPattern {public: bool wordPattern(string pattern, string str) { if (pattern.empty() && str.empty()) { return true; } ...
2018-06-11 10:32:07 173
原创 LeetCode 205. Isomorphic Strings
205. Isomorphic Strings题目要求的是双向关系,一开始理解错了class IsIsomorphic {public: bool isIsomorphic(string s, string t) { if (s.size() != t.size()) { return false; }...
2018-06-10 21:42:47 139
原创 LeetCode 204. Count Primes
204. Count Primes主要是判断整数是否为质数,判断有如下三种,效率依次提高 bool isPrimes(int n) { bool bIsPrimes = true; for (int i = 2; i <= n; i++) { if (n % i == 0) ...
2018-06-10 17:46:17 187
原创 LeetCode 190. Reverse Bits
190. Reverse Bits二进制操作,一直是自己比较薄弱的地方。 解法一:对每个二进制位进行操作class ReverseBits {public: uint32_t reverseBits(uint32_t n) { uint32_t movement = n; uint32_t res = 0; int mask ...
2018-06-10 17:10:42 161
原创 LeetCode 172. Factorial Trailing Zeroes
172. Factorial Trailing Zeroes主要看5的个数就可以了。class TrailingZeroes {public: int trailingZeroes(int n) { if (n < 5) { return 0; } int count = 0; ...
2018-06-10 11:50:16 141
原创 LeetCode 168. Excel Sheet Column Title
168. Excel Sheet Column Title这题。。做了好久。脑子没转过来 1.以为是27进制,不知道怎么想的。。。 2.进制从0开始和从1开始。。。class ConvertToTitle {public: string convertToTitle(int n) { if (n < 1) { ...
2018-06-10 11:02:58 123
原创 LeetCode 122. Best Time to Buy and Sell Stock II
122. Best Time to Buy and Sell Stock IIclass MaxProfit {public: int maxProfit(vector<int>& prices) { if (prices.empty()) { return 0; } in...
2018-06-07 19:27:17 143
原创 Leetcode 112. Path Sum
112. Path Sum1.有点回溯的感觉,试完左树试右树。 2.注意叶子节点的判断条件 3.root=NULL,sum=0时也要返回false。class HasPathSum {public: bool hasPathSum(TreeNode* root, int sum) { if (root == NULL) { ...
2018-06-07 17:38:39 145
原创 LeetCode 111. Minimum Depth of Binary Tree
111. Minimum Depth of Binary Tree1.条件不能是root == NULL,而是判断叶子结点的条件。class MinDepth {public: int minDepth(TreeNode* root) { if (root == NULL) { return 0; } ...
2018-06-07 17:11:44 212
原创 Leetcode 110. Balanced Binary Tree
110. Balanced Binary Tree1.返回bool是为了返回判断的结果,判断当前的结点是否平衡 2.depth是为了记录高度class IsBalanced {public: bool isBalanced(TreeNode* root) { if (root == NULL) { return true;...
2018-06-07 16:48:10 155
原创 LeetCode 107.Binary Tree Level Order Traversal ii
107.Binary Tree Level Order Traversal ii拆分任务: 1.层次遍历 2.翻转vectorclass LevelOrderBottom {public: vector<vector<int>> levelOrderBottom(TreeNode* root) { if (root == NULL) ...
2018-06-05 16:55:55 191
原创 Leetcode 67.AddBinary
67.AddBinary跟66.Plus One 差不多,我还是先把他翻转过来。 因为有可能两个字符串长度不一样。短的字符串如果超出长度,循环时一直加0就好了。class AddBinary {public: string addBinary(string a, string b) { reverse(a.begin(), a.end()); ...
2018-06-05 13:18:16 148
原创 Leetcode 66.Plus One
66.Plus One我采用的方法是先把整个vector翻转,再顺序加。最后再重新翻转回来。class PlusOne {public: vector<int> plusOne(vector<int>& digits) { vector<int> tmpDig = digits; reverse(tm...
2018-06-05 12:30:25 159
原创 Leetcode 38.Count and Say
38.Count and Say 这题理解了题意就会比较好做。 1 11 21 1211 111221 规定第一项是 1 2时,读第一项,就是 1个1 3时,读第二项,就是 2个1 4时,读第三项,就是 1个2,1个1 …要把相同数字的归纳为数量表示出来。class CountAndSay {public: string coun...
2018-06-05 12:08:49 138
原创 leetcode 35.Search Insert Position
考查二分查找class SearchInsert {public: int searchInsert(vector<int>& nums, int target) { if (nums.empty()) { return 0; } int nLeft = 0; ...
2018-06-05 11:39:55 99
原创 破相 - 容祖儿
破相作词:黄伟文 作曲:陈辉阳 演唱:容祖儿听笑话 尽量笑得不勉强 我望镜 愁云密布我面上 皱着眉 旁人问我何解这样 在这 愉快的现场 大概因我 从前撞向一道墙 种下了 难缝合 旧创伤 破相 原来是要来称呼这样 历史遗下的账 是我 顽强到已经 用尽余下血清 亦是时间认命 早知我 越活越冷清 就别望救星 投降前坐定越笑越见疤痕 留了提示谁是极不幸 已不记得哪些...
2018-05-22 20:01:09 495 1
原创 尘埃落定-张敬轩
尘埃落定作词:林夕 作曲:Christopher Chak 演唱:张敬轩如爱要老实为何自欺 如爱够伟大为何自卑 如自问未能容许抑郁不理 不要再说喜欢你 如你已应验甜蜜梦境 尘埃缥缈间早已落定 从出生当天角色早已礼成 只可合照缩影 维持着熟悉表情陌生关系不要变 只等到红包仪式一场偶遇才会面 现实前被逼安分才戒掉了闪索挂念 总算立地顶天无爱可失 得不到相恋别说失恋 ...
2018-05-17 11:49:00 1017
原创 钟无艳 - 谢安琪
钟无艳作词:林夕 作曲:Christopher Chak 演唱:谢安琪其实我怕你总夸奖高估我坚韧 其实更怕你只懂得欣赏我品行 无人及我用字绝从拾了你信心 无人问我可甘心演这伟大 化身 其实我想间中崩溃脆弱如恋人 谁在你两臂中低得不需要身份 无奈被你识穿这个念头 得到好处的你明示不想失去绝世好友没有得你的允许 我都会爱下去 互相祝福心软之际或者准我吻下去 我痛恨成熟到...
2018-05-10 16:15:51 386
原创 放不低 - 郑秀文
放不低作词:李敏 作曲:冯颖琪 演唱:郑秀文是你故意欺骗 怪在我太过心软 你的真话就等于梦呓与谎言 无奈你说得太自然 让我听了也能热恋 甜言蜜语 原来又一次食言 是你对我改变 你别说世界转变 解释得混乱 千丝万端 太多纠缠 谁没兴致守这诺言 但却对我在存心诈骗 胡言乱语 任你讲足半天为什么永远放不低 为什么错爱这一位 但求仍能维系 不惜一切 我为你执迷 为何永远...
2018-05-10 15:52:16 334
原创 纸牌屋 - 容祖儿/李克勤
纸牌屋作词:黄伟文 作曲:Eric Kwok 演唱:容祖儿/李克勤残忍的 人生中 渴望有情人与共 可记得 找到他 你曾如何地放松 如今的 危机中 要是绵羊学懂珍惜那牧童 总能 包容 他掀起那份痛从前你俩为什么执手起誓 难捱的关口请你记住原委 努力保卫 同林鸟要是害怕半路坠毁 不只要分享所有美丽 爱美在一起堵上一切 然后回望这半生修到默契 忍心作废扬起的 尘土中 要...
2018-05-10 15:42:27 423
原创 离家出走-卫兰
离家出走作词:林夕 作曲:雷颂德 演唱:卫兰豁出去漫游 不通知亲友 这快感少有 哪管想去多久 抱得你未够 于这里闷透 才誓死跟你逛尽地球 何必每件壮举都需要理由 共你去出走 快活而内疚 不管举世追究 愿扣上你双手 自繁华浪处 到沙丘 恋爱 能有幸这样放肆 至足够别再管谁咒你 曾经荒谬 闯荡异地 亦未枉相恋 超出烦恼的禁忌 是世上人不理 想早晚能见你 曾经反叛...
2018-05-10 11:34:37 554
原创 年度之歌-谢安琪
年度之歌作词:黄伟文 作曲:Christopher Chak 演唱:谢安琪曾经攀上的天梯 曾经拥有的身体 曾经在乎一切 被突然摧毁 刹那比沙更细 良夜美景没原因出了轨 来让我知一切皆可放低 还是百载未逢的美丽 得到过又猝逝 也有一种智慧全年度有几多首歌 给天天地播 给你最愉快的消磨 流行是一首窝心的歌 突然间说过就过 谁曾是你这一首歌 你记不清楚 我看着你离座 ...
2018-05-10 11:20:38 269
原创 喜帖街-谢安琪
喜帖街词:黄伟文 曲:Eric Kwok 演唱:谢安琪忘掉中过的花 重新的出发 放弃理想吧 别再看 尘封的喜帖 你正在要搬家 筑得起 人应该接受 都有日倒下 其实没有一种安稳快乐 永远也不差就似这一区 曾经称得上 美满甲天下 但霎眼 全街的单位 快要住满乌鸦 好景不会每日常在 天梯不可只往上爬 爱的人没有一生一世吗 大概不需要害怕(忘掉爱过的他...
2018-05-10 10:41:58 239
原创 MAC OS 的mach_port_t和pthread_self()
MAC OS 三种 线程1.pthread_self() glibc库的线程id。实际上是线程控制块tcb首地址。2.gettid: 内核级线程id,系统唯一。 该函数为系统调用函数,glibc可能没有该函数声明。 此时需要使用 syscall(SYS_gettid);3.mach_port_t: mac os特有的id。实际上不能说是thread id,而应该当做是端口。 ...
2018-04-08 17:04:30 3947
原创 leetcode 29.Divide Two Integers
29.Divide Two Integers这道题慢慢减不行,需要位移运算实现循环一次减多个的效果。 下面代码有个坑是,当 count = 31时,1需要左移31次,编程INT_MIN。class Divide {public: int divide(int dividend, int divisor) { // x / % if (diviso...
2018-03-28 00:29:15 168
原创 leetcode 15. 三数之和
15. 三数之和方法网上有很多,这里主要分析一下用set排重的问题。 先说知识点: 1.set采用等价比较,而不是等值(Effective STL)。就是说不用operator==,只用operator<。 2.set只实现了内置类型的比较函数。 3.当set里面元素相等时,总是返回false。 4.set比较函数的实现方法如下struct A{ int a;}...
2018-03-25 23:09:51 738
原创 leetcode 11.盛最多水的容器
11. 盛最多水的容器双指针法,挺常用的,学习一下。class MaxArea {public: int maxArea(vector<int>& height) { if (height.size() < 2) { return 0; } int nLeft = 0...
2018-03-25 18:31:57 1523
原创 刷算法题 前言
前言好久没写博客的。日常笔记放在印象笔记,而且自己刚刚出来工作,处于汲取知识的阶段,对知识也没有太多自己的经验见解,写的博客也少了。另一方面当然也是自己懒癌晚期了。发现自己的数据结构和算法,真的菜得不行。看到算法题,好像有思路,但是就是做不出来。一方面是自己的基础不够坚实,具体到写代码时因为一些小问题碍手碍脚。另一方面是目前能力问题,只能想清楚一部分,再深写下去,就迷糊了。类比就是高三时做...
2018-03-25 11:48:56 294
原创 C++ 类调用关系没有virtual就是编译期确定
virtual 虚函数class A{public: virtual void fun(){ std::cout<<"A"<<endl; }};class B:public A{public: void fun(){ std::cout<<"B"<<endl; }};void fun2(A *a){ a->fun()
2017-08-30 10:43:17 281
原创 100层摔两个鸡蛋的问题
这是一道动态规划的题目。 参考两个链接,可以理解解法。 1. http://blog.csdn.net/lzshlzsh/article/details/5951447 2. http://www.cnblogs.com/Donnnnnn/p/5720729.html在(1)中,把100层摔鸡蛋问题,化成动态规划理解 f(a,b)表示现在有a个鸡蛋,可以允许测试b次,那么可以被测出来的层数是
2017-03-26 15:42:47 915
转载 【转载】libevent核心数据结构
转载自 libevent核心数据结构eventevent就是每一个需要处理的事件。struct event { //TAILQ_ENTRY:双向链表。用双向链表保存IO和信号事件 TAILQ_ENTRY (event) ev_next; //IO事件双向链表中位置 TAILQ_ENTRY (event) ev_active_next; //活跃的事件在活跃双向链表中位置 TAILQ_E
2017-03-08 20:01:57 292
转载 【转载】libevent简单流程
转载自 这里事件处理流程 当应用程序向libevent注册一个事件后,libevent内部是怎么样进行处理的呢?下面的图就给出了这一基本流程。 1) 首先应用程序准备并初始化event,设置好事件类型和回调函数;这对应于前面第步骤2和3;2) 向libevent添加该事件event。对于定时事件,libevent使用一个小根堆管理,key为超时时间;对于Signal和I/O事件,li
2017-03-08 18:41:41 278
原创 校招前总结
从9月份,大三开学之前坚定要走C++后台开发的方向,有很认真的看许多关于C++、网络编程的书。如下 C++:《C++ Primer》,《Effective C++》,《深度探索C++对象模型》,《STL源码剖析》网络编程:《UNP 卷1》,《UNP 卷2》,《Linux多线程服务端编程》,《APUE》,《TCP/IP 卷1》操作系统:《深入理解计算机系统》数据结构:《数据结构与算法那分析 C++描
2017-03-04 00:04:27 377
原创 【转载】select和poll调用深入解析
select调用深入解析 poll调用深入解析 上面两个链接写关于select和poll底层是怎样工作,很细心对源代码进行剖析,解释得挺详细的。特别是关于poll。其实select和poll底层都是把fd copy到内核,遍历所有fd数组,然后把对应的进程(当前进程)挂载到专属于这个fd的等待队列上面。如果这个fd可读或可写,就在队列中激活进程。然后内核再填写好状态,copy回用户空间。用户跳出
2017-02-19 22:25:33 273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人