自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 237-e-Delete Node in a Linked List

删除链表的指定节点,但只给你要删除的节点,没有给链表头结点。如果不是看到是easy题,我可能会觉得很难:上一个节点指针没给啊怎么删除啊。后来结合难度再一想,难道是要移动节点的值么,就像数组前移那样。照着这个想法没几分钟搞出来一提交,竟然ac了。这...有意义吗?leet的题目应该都是要转弯的,虽然这种土方法能ac但其实毫无意义。果然网上稍微搜了下,可以将要删除的节点伪装成next,然后将next删

2015-07-18 16:38:09 309

原创 235-e-Lowest Common Ancestor of a Binary Search Tree

求二分查找树的最小公共先驱。知道了什么叫二分查找树这道题就很好写了,逻辑还是比较简单的,比较node值与目标值的区间决定左移或右移就行。 如下: void lowestCA(struct TreeNode *node, int low, int high, struct TreeNode **result) { if (node == NULL) return;

2015-07-15 20:12:53 318

原创 234-e-Palindrome Linked List

判断一个链表是否回文。一看到判断回文第一想到就是一头一尾双指针移动,但单链表尾巴回不来啊,于是自然想到了栈。但一时半会想不出怎么保持指针,上网搜了一下搜出了另一种解法也是用了栈,用了一个慢指针遍历一个快指针每次移动2格间接测出了链表长度,但如果加上之后的慢指针遍历判断时间度应该算O(1.5n)吧,而且空间不是O(1)。鉴于该逻辑比较好理解,我也就顺着这逻辑写了,但总觉得不是leet要求的,一定有更

2015-07-14 21:39:48 332

原创 汉诺塔求解

这两天突然对递归有了兴趣,于是把以前没怎么弄明白的八皇后和汉诺塔一起过了过。觉得八皇后逻辑上挺好理解,抽象成程序语言写出来后也挺好解读,但汉诺塔的逻辑抽象成程序语言写出来后我觉得还是不怎么好理解。 汉诺塔的解题逻辑不难,跟普通递归没啥区别:(1)将所有n个盘抽象为第n盘和所有n-1盘:为了将第n盘从A移动到C,需要先把所有n-1盘移动到B,再将n移动到C,再将B上的所有n-1盘移动到C。 移动

2015-07-09 14:49:42 482

原创 八皇后递归求解

八皇后,很经典的一道题目了,即在棋盘上摆满八个皇后,互相不在同一行同一列同一对角线上,问有几种摆法。其实可以扩展为n(n >= 4)皇后问题。以前被这种题目吓尿过,现在想来当时实在可笑。 有了刷leet的经验,这道题跟leet上求电话号码组合的题目何其类似,只是多了不能同行同列同对角线的判断。于是套用该题结构走起,比较顺利的做了出来,不过有bug导致丢解,原因为当最后一列的数据置1后如果其下一层

2015-07-09 14:34:17 390

原创 224-m-Basic Calculator

有括号的运算,只有加减运算。很明显本题只考察括号匹配没有再加入乘除,否则就真是半个计算器的工程了。由于我是先写了计算器二式,所以本题也想用一次扫描就出结果。但由于有括号要考虑出栈,要考虑单个括号括的数、左右括号中有算式的、连续括号的,所以边界判断很多,写了3种情况,一个个if把程序搞得很臃肿,自我感觉写的不好。 其实本题我觉得用2n时间度可能更好,第一遍扫就干托括号的事,第二遍再扫就干计算的事,

2015-07-07 21:50:38 316

原创 227-m-Basic Calculator II

四则运算。真的只是四则而已,没有要求括号只有加减乘除,因此还算是简单的,难点可能就在对乘除的处理上。最开始写的是将操作数和操作符全部分别提取到2个数组中,再一个个出栈运算,发现不好写,因为数组是静态栈消不掉元素。后来还是在操作数入栈的时候就做处理,如果是乘除的直接算出结果再入栈,最后对2个栈进行加减法就可以了。本题写的逻辑一般,空间还占用了不小(因为用了2个数组做栈,用例中有上万个元素的例子,所以

2015-07-07 14:54:34 340

原创 231-e-Power of Two

求一个数是否是2的n方。看这道题用例的提供者,貌似是个瓷器国人,而题目逻辑很明确感觉解法也应该没什么trick,感觉很平常的一道题不知为何leet会收录。该题我五分钟不到就写出来了,提交时遇到了0、1和负数的错误,稍作修改即可。这是刷题以来最快解答速度,但好像不怎么开心。。。 代码如下: bool isPowerOfTwo(int n) { bool result = true;

2015-07-06 18:44:32 310

原创 40-m-Combination Sum II

求指定和的组合,但个个数只能用一次。求和一的变种,有了一的经验,二式可以沿用一式的backtracking格式,由于每个数只能用一次,那么控制参数i每次递增1就可以了。另一个要注意的是可能有重复项而重复项可能会构成解,例如【1,1,2,5,6】target = 8,【1,1,6】是解但会出现2组【1,2,5】,因此要过滤掉用过一次的重复项,我的方法是在本层递归后将重复项跃过(因为是在递归后跃进,所

2015-07-06 15:47:46 245

原创 228-m-Summary Ranges

求数组的概览。逻辑还是很简单的,数组元素一个个比较差值是否为1即可。最先看它给的例子是从0开始,就很天真的用了个for循环,oj后果然错误因为用例可以是负数的。用c写的话用sprintf库函数很方便构造字符串。 如下,for循环的仍然保留只注释掉,以示警戒: char** summaryRanges(int* nums, int numsSize, int* returnSize) {

2015-07-04 11:54:55 301

空空如也

空空如也

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

TA关注的人

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