自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (3)
  • 收藏
  • 关注

原创 16年所读书籍列表

已读:----161. 一句顶一万句 刘震云2. 万箭穿心  方方3. 无人生还  阿加莎克里斯蒂4. 动物农场 乔治奥威尔5. 一个人的朝圣 乔伊斯6. 三体(全三部)  刘欣慈7. 慈悲   路内8. 皮囊  蔡崇达9. 无声告白  伍绮诗-----15-16追风筝的人  小姨多鹤推拿台北人橄榄成渣台北人-----

2016-06-05 17:55:16 484

原创 leetcode 每日一题 172. Factorial Trailing Zeroes

典型的数学问题:问题:N的阶乘(N!)中的末尾有多少个0?     例如:N = 5,N! = 120.末尾有1个0.分析:想到这个问题,有人可能第一反应就是现求出N!,然后再根据求出的结果,最后得出N!的末尾有多少个0。其实可以考虑为,哪些数相乘可以得到10 这个角度,由于2*5为十,且分解后5的个数肯定小于2,所以在这个阶乘中10的幂M可以由1~N中有多少个5来决定

2016-04-01 18:41:05 408

原创 leetcode 每日一题 111. Minimum Depth of Binary Tree

今日组会····水一道~题目和求最大深度一样,只不过这个是求最小的深度 感觉理解的还是不够透彻 所以写出简洁的代码不容易=========================================所谓最小深度,是指从root到任意一个leaf的最短深度。如果root为空,深度为0。如果root不为空:如果左右子树都不为空,最小深度就是 1 + min(mi

2016-03-30 14:55:18 329

原创 leetcode 每日一题 257. Binary Tree Paths

给出二叉树,求所有从根到叶子节点的路径并打印这道题可以用递归解(DFS),但是对递归理解的还是不够,并且判断条件的时候太大意了 一直RE,烦得很后来经臭臭指点找到了原因。 vector binaryTreePaths(TreeNode* root) { TreeNode* head=root; //记得赋值啊! vecto

2016-03-29 12:47:11 388

原创 leetcode 每日一题 236. Lowest Common Ancestor of a Binary Tree

比昨天的搜索二叉树来说更难一点点 不过用递归的方法还是很便捷。看了思路之后自己写了一下,其实还是有很多地方需要注意的,比如注释中的首先给出的是两个节点,因此要用节点和root比较,而不是用节点的值比较其次,定义了lft和rgt两个递归的结果之后,判断时要用lft不为空做判断,一开始我用的是为空,其实这样就缺少了条件,因为并不知道rgt是不是为空?要用if else语句,用很

2016-03-28 16:21:22 406

原创 leetcode 每日一题 235. Lowest Common Ancestor of a Binary Search Tree

题目中给的是求二叉搜索树的两个节点的共同祖先,因此相对简单主要就是理解了二叉搜索树的左节点因此把root和两个点的值比较一下可以得出结论为了更加清楚,写的判断条件比较复杂,其实可以直接把return r这句放在else中执行,不需要写出条件discuss中还有一些递归等方法,时间都差不多,不赘述了class Solution {public: Tree

2016-03-27 15:53:20 298

原创 leetcode 每日一题 107. Binary Tree Level Order Traversal II

此题是上一道题的变体···最简单的方法就是把插入的方式变一变就可以了,或者把push_back函数改成insert或者在最后reverse一下 都可以 但是奇怪的是,时间复杂度很高,竟然要64ms后来看到discuss中一个8ms的程序 觉得差不多 并没什么区别 代码如下:  https://leetcode.com/discuss/92987/share-c-solution

2016-03-26 15:51:54 346

原创 leetcode 每日一题 118. Pascal's Triangle

由于昨天木有更,今天做两道题补上~这题主要是考数学···另外就是输入输出的定义,需要预先考虑好前面两个数组的特殊情况,之后直接进行推导即可。 result.resize(numRows); 这个直接分配大数组的大小result[n-1].resize(n); 这个用来分配第二维数组的大小class Solution {public: vec

2016-03-25 16:53:53 281

原创 leetcode 每日一题 102. Binary Tree Level Order Traversal

一道BFS的题目,也就是层次遍历并输出。由于用的是vector套vector的结构,需要预先定义好,可以用push_back直接存进去相当于又默写了一遍,还有很多地方不完善,详见注释:class Solution {public: vector> levelOrder(TreeNode* root) { vector> res; //一个存储返回

2016-03-25 16:49:59 221

原创 leetcode 每日一题 112. Path Sum

给出一个值求是否有值相等的二叉树路径,由于只需要判断true和false,所以可以直接用递归。递归的时候,依然是情况考虑的有点少,另外,需要考虑,最后的叶子节点时,左右子树都是空的,再进行true和false的判断,这点忽略了,所以一职runtime error代码和相关注释如下class Solution {public: bool hasPathSum(T

2016-03-23 14:36:08 318

原创 leetcode 每日一题 206. Reverse Linked List

反转链表的题目,比较基础,但是很容易蒙我的这种方法是建立一个头,然后一个一个反转 每次都将原第一个结点之后的那个结点放在list后面,下图是原始的单链表。为了反转这个单链表,我们先让头结点的next域指向结点2,再让结点1的next域指向结点3,最后将结点2的next域指向结点1,就完成了第一次交换,顺序就变成了Header-结点2-结点1-结点3-结点4-NULL

2016-03-22 16:09:27 404

原创 leetcode 每日一题 21. Merge Two Sorted Lists

写了很久···该忘的全忘了看来最后发现有的判断条件写的不对,另外,可以给curr指针设终点。详细的可以看注释class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* a=l1; ListNode* b=l

2016-03-21 15:32:59 265

原创 leetcode 每日一题 242. Valid Anagram

这题想了很久也没有做···今天做了主要是trick就是要把这些字母统计出来,一共26个字母,可以统计到一个0~25数组中,第一个字符串中包含则增,第二个字符串中包含则减最后只要比较这个字符串是否为0即可class Solution {public: bool isAnagram(string s, string t) { int len

2016-03-20 16:55:46 244

原创 leetcode 每日一题 66. Plus One

一开始没理解题意,是一个数用数组来表示的意思,然后对其进行+1操作很老的思路,设一个标志位,依次判断,如果最后如果需要9999->10000的时候,需要insert一个1  在开头处(vector果然比数组好用啊!)class Solution {public: vector plusOne(vector& digits) { int

2016-03-19 16:35:29 351

原创 leetcode 每日一题 231. Power of Two 326. Power of Three

最简单的方法···求一个数是否是 bool isPowerOfTwo(int n) { if(n<=0) return false; //考虑情况要全面 if(n==1) return true; while(n>=2){ if(n%2==1) return false; n=n/2;

2016-03-18 13:34:19 319

原创 leetcode 每日一题 203. Remove Linked List Elements

昨天做完那道题后推荐了这道题~类似的解法,但是通过率竟然挺低的代码如下,就是用测试用例测一下,考虑多种情况做的。比如一开始都是val的情况,以及中间有val的情况 ListNode* removeElements(ListNode* head, int val) { ListNode* first=head; if(first==NUL

2016-03-17 17:22:50 321

原创 leetcode 每日一题 27. Remove Element

和昨天的题很类似,由于不想做动规,所以一直在做数组啊指针的基础题。效率不高,不过据说超过百分之4的人,但是其实另外百分之九十的都和我时间一样~逐渐建立两个指针的思想。class Solution {public: int removeElement(vector& nums, int val) { int now=0; for(int i=0;

2016-03-16 12:39:15 334

原创 leetcode 每日一题 26. Remove Duplicates from Sorted Array

和之前的sorted list意思差不多,不过用array就比较不好想···经candy提醒,应该用两个指针,一个指在前面,一个在后面比较,如果不一致,就移动指针,并且赋值。注释中是用vector 函数做的一种简单的写法class Solution {public: int removeDuplicates(vector& nums) { int tmp=0;

2016-03-15 19:29:57 289

原创 leetcode 每日一题 328. Odd Even Linked List

题目意思挺简单的,解法也好想,但是在链表处不熟悉,还是容易出问题:题意是,把链表重排,排成先奇数点后偶数点的链表,自然想到了要用两个指针。但是由于奇偶排完之后还需要连接起来,因此还需要一个temp指针,用于存储偶数的第一位。另外,一开始写的时候总是runtime error,主要是因为忘记改变指针的next之后,指针自己的位置也要变因此做题前还是要好

2016-03-14 15:12:04 429

原创 leetcode 每日一题 13. Roman to Integer

将罗马数字转换成int,首先要知道罗马数字的规则,有一篇文章写得很好,我看了之后理解了···所以编了程序1a了 原文在此: http://www.ituring.com.cn/article/179820?utm_source=tuicool基本字符:   I、V、X、L、C、D、M相应的阿拉伯数字表示为:1.5、10、50、100、500、1000(1)相同的数字连写

2016-03-13 14:59:43 320

原创 leetcode 每日一题 83. Remove Duplicates from Sorted List

一道水题,需要注意的是,需要新定义一个node指针进行操作,然后最后返回head,这样才能得到更改后的链表否则会变成runtime errorclass Solution {public: ListNode* deleteDuplicates(ListNode* head) { ListNode* temp; while(temp!=NULL&&t

2016-03-12 16:51:16 301

原创 leedcode 每日一题 202. Happy Number

差点想要用递归去做···还好臭臭告诉我了··· 题目的意思是,19的每一位平方加和之后,再继续,最后如果得到1,则是happy数。 在做这道题之前有个误区,就是觉得,怎么判断这个数不是happy数呢?如果不是,它一定是个循环,但是循环其实是有一个开始的, 比如4,它一直在循环,但是并不一定返回4,而之前我认为需要返回4才可以判断false。 事后证明需要比较过程中出现的每个数是否出

2016-03-11 15:44:26 333

原创 leetcode 每日一题 263. Ugly Number

没仔细读题···是一道简单的递归题,求的是判断此数是不是能被235整除的数打算有空做做happy numberclass Solution {public: bool isUgly(int num) { if(num==1) return true; if(num<1) return false; else if(num%2==0)

2016-03-10 22:59:45 281

原创 leetcode 每日一题 34. Search for a Range

题目意思是,返回数组中某个数的起始位置。由于这道题已被臭臭剧透过了,所以做起来只要按照思路写就可以了····discuss里面看到很多大神用二分搜索之类,震惊!class Solution {public: vector searchRange(vector& nums, int target) { int start=-1;int e

2016-03-09 21:27:53 240

原创 leetcode 每日一题 169. Majority Element

可以使用map做,由于不熟练,还错了好久,最后自己写了一个很慢很慢的算法class Solution {public: int majorityElement(vector& nums) { map mymap; int len=nums.size(); for(int i=0;i<len;i++){ myma

2016-03-08 22:47:53 292

原创 leetcode 每日一题 217. Contains Duplicate

题目很简单,是求数组里是否有重复的元素。最直观的方法: bool containsDuplicate(vector& nums) { vector& vec=nums; int len=vec.size(); if(len==0) return false; //int flag=0; for(int i=0

2016-03-07 17:45:43 284

原创 leetcode 每日一题 171. Excel Sheet Column Number

一道26进制的题目····思路是从最低位开始,分别将26进制数转为10进制,然后累加不知道为啥时间复杂度有点高···class Solution {public: int count=0; int tmp=1; int titleToNumber(string s) { for(int i=s.length()-1;i>=0;i--){

2016-03-06 14:47:27 238

原创 leetcode 每日一题 110. Balanced Binary Tree

题目是要求判断一棵树是否是平衡树,也就是要看左右子树高度的差是否绝对值小于等于1可以通过递归来求,同样的,需要另外定义一个函数来计算深度,深度的程序之前写过,比较熟悉。另外就是之前少写了一个条件,也就是isBalanced(root->left)&&isBalanced(root->right)这个条件,即忘记递归的时候左右也要分别满足平衡二叉树的条件。光顾着计算深度差

2016-03-05 18:45:54 209

原创 leetcode 每日一题 101. Symmetric Tree

判断对称树 乍一看比较难,其实还是可以用递归解决,只不过是写一个有两个指针的函数进行比较即可。class Solution {public: bool mySymmetric(TreeNode* left,TreeNode* right){ if(left==NULL&&right==NULL) return true; if(left!=N

2016-03-05 18:27:29 230

原创 leetcode 每日一题 100. Same Tree

递归的方法检查两棵树是不是相同的~包括值class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&&q==NULL) return true; else if(p!=NULL&&q==NULL||p==NULL&&q!=NULL) return

2016-03-04 16:36:08 288

原创 leetcode 每日一题 Delete Node in a Linked List

注意读题,发现一般的单链表删除需要知道被删除节点的上一个节点,然而本题中只给出了要删除的节点,并且提出了不会删除尾节点。因此可知,可以使用将当前节点改为“上一个”节点的方法来做。即将节点值等于下一个节点的值,此时下一个节点就变成了可以删除的点。class Solution {public: //int n; void deleteNode(ListNode

2016-03-04 15:25:19 235

原创 leetcode 每日一题 104. Maximum Depth of Binary Tree

求二叉树的深度的题,可以用递归的DFS做,试了几次发现ac了····class Solution {public: int count=0; int maxDepth(TreeNode* root) { if(root==NULL) return 0; count=max(maxDepth(root->left),maxDepth(root->

2016-03-03 16:24:19 222

原创 leetcode 每日一题 283. Move Zeroes

此题的vector 完全可以做数组用。一开始的常规思路当然是依次把数字前移,然而由于考虑不全面,错了几次。一开始的错误代码是这样:class Solution {public: void moveZeroes(vector& nums) { vector& vec = nums; int len=vec.size();

2016-03-02 22:13:45 256

原创 leetcode 每日一题 70. Climbing Stairs

虽然标记是动态规划。但是其实感觉大家都会用递归,但是递归会超时。这时发现可以使用一维数组去做,比较简便好理解。有n个台阶,每次走一步或者两步,问多少种方法走完。用动态规划的想法去想,从n开始倒着数,发现可以使用n-1+1或者n-2+2这两种方式走完整个台阶。因此n的次数=n-1台阶可能的走法+n-2台阶可能的走法举个例子:n=1时,1种走法n=2时,2种

2016-03-01 18:20:14 238

原创 leetcode 每日一题 258. Add Digits

快开组会了 水一水主要是要考虑到特殊情况,并且将其规律化。class Solution {public: int addDigits(int num) { return 1 + (num-1) % 9; // if(num==0)return 0; // if(num%9==0)return 9; // e

2016-03-01 11:36:07 242

原创 如何在folat left的时候让子div撑开父div

.clearfix:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;} 之后在父div里面加入 class="clearfix"这个类就可以了参考网站:http://blog.csdn.net/piazini/article

2016-02-29 21:07:06 419

原创 leetcode 每日一题 Invert Binary Tree

一道很简单的题···然而我还是墨迹了半天 一看就可以知道 有递归和非递归的写法,不过在手写的时候依然把返回值给忘了,还把终止条件写错了。递归的方法代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *

2016-02-29 17:07:29 280

原创 leetcode 每日一题 Nim Game

题目意思比较简单,就是你和朋友拿桌上的一堆石子,每次可以选择拿1-3颗,拿走最后一颗石子的人将胜利,如你先拿,怎样判断你是否能赢?题目是最简单的博弈论问题,解决方法是如果桌上石子能被4整除,则必输。如果桌上石子不能被4整除,则有必赢的策略。class Solution {public: bool canWinNim(int n) { if(n%4=

2016-02-29 15:17:33 533

原创 在知乎上给评论加入跳转链接--XSS练手

今天在知乎上看到一个有意思的问题和回答,原链接在此:https://www.zhihu.com/question/39019943#answer-27137376大家在下面可以用链接作为回复内容 链接到一些其他内容里去。然而知乎本身就有过滤,所以需要绕过过滤才可以。自己写的不好,找了找别人写的,加以修改就可以了<a href=

2016-01-15 22:00:06 6210

原创 2016 目标清单

2016年到了 本命年··· 应该是较重要的一年 无论是学业 将来的工作还是 感情 未来等等 列出一个15总结 和16的list  希望在16年年底的时候能看看 实现了多少15总结:1. 结了所有的课,科研进展不大2. 去了许多地方玩:包括 北京,大连,厦门,深圳,山西,青岛,重庆···3. 看了一些书,具体也没数,什么《无声告白》《冻花》《追风筝的人》《废都》《皮囊》

2016-01-03 20:51:42 462

谷歌使用全攻略

谷歌使用攻略,学习如何搜索谷歌中的内容,更好的进行检索

2013-05-07

现代操作系统(第三版)答案

操作系统答案,最新版,便于上操作系统课程的同学学习参考

2012-12-21

数据库系统基础教程课后答案

数据库系统教程课后答案,便于学习数据库课程的同学参考利用

2012-12-09

空空如也

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

TA关注的人

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