>

自由软件精神——“自由、开放、分享”。自由软件自诞生之日起,就秉承了学术自由的思想,信奉科学无国界,知识应该全人类共享。

ubuntu精神——人道待人,天下共享连接人人的信念。具有 ubuntu 精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能......

文章, 第6页

leetcode刷题 Path Sum II

就是树的深度优先,路径保存问题!当心啊,每次push,pop在每条return的时候都要保证一致啊!

标签:

题目意思看错了就悲剧了,其实就是递归处理!将左子结点变为NULL,然后放到右子树里!只是注意冒泡思路在find_last_node in pre order先序遍历的使用。

标签:

不所了,采用自底向上的dp思路!非常简单,以数组的index下标作为递归函数参数!

标签:

leetcode刷题 3Sum Closest

经典问题2sum的变形,可以考虑最简单的2sum,这是个经典问题,方法就是先排序,然后利用头尾指针找到两个数使得他们的和等于target,时间复杂度是n*log(n)+n=n*log(n),3sum的话其实就是借鉴了这个思想!MS的那个3个数求和为0,我可以用n*n复杂度求了!

标签:

leetcode刷题 Insertion Sort List

细节太多了!尤其是tail插入的时候,需要将node.next=None,否则就会出现死循环!

标签:

leetcode刷题 Subsets

反正求排列组合的题目多是采用递归!这个题目也不例外,学会采用自底向上的思考方式,subset(arr, index)=subset(arr,index-1) U (subset(arr,index-1) with elements append arr[index]),你想到这个最关键的递推公式就搞定了!其实自底向上求解都是在这个核心的index,index-1,index+1的关系而已!

标签:

不需要扫描数组两遍啊!从前向后扫描记录当前price和历史的最小price差值即可!

double to string

自己写的精度转换总是有问题!但是学到了一点就是 string s1=(char)(ch)+(string)s2可以实现字符串在头部增加加char的功能,以前一直以为是string+=char!

标签:

获取树的宽度

所有树的算法无非都是使用递归!就看你自顶向下的思考能力,DP是看你自底向上的思考能力。此外函数返回数值可以使用入口参数,编程思维要灵活,不一定就必须使用结构体。

标签:

自写atof

注意用的是贪心思路,先求出小数点前面的整数,然后绕过小数点,求小数部分,然后叠加作为最后结果!

标签:

基数排序

非常优雅的实现!结合了计数排序(桶排序)的思路,利用元素为linklist的数组实现!例如0-9的数字对应数组里第0-9个元素,这些链表里存放了某位为特定数字的所有data集合。

标签:

leetcode刷题 Merge Two Sorted Lists

其实就是归并排序里的merge思路!只不过链表的话,不许要额外的O(n1+n2)空间!使用dummy结点更加优雅!

标签:

leetcode刷题 Valid Number

直接用float(str),然后判定异常即可!

标签:

leetcode刷题 Climbing Stairs

就是fibna数列问题!没啥说的!

标签:

leetcode刷题 Remove Element

qsort里的partition没啥说的!

标签:

就是linux下uniq命令实现!了然,data=A[i] while (i+1) lt len(A) and A[i+1]==data: i+=1 不吃后悔药的思路来找到下一个不等的元素!

标签:

leetcode刷题 Valid Parentheses

用dequeue模拟stack!

标签:

记下get_nth_node_in_list(head,nth),当然nth从0算起:k=0; while k lt kth and head: head=head.next;k+=1; if k==nth: return head else: return NOT_FOUND!链表的题目太容易在指针那里出错了!

标签:

leetcode刷题 Longest Common Prefix

没啥说的!

标签:

leetcode刷题 Reverse Integer

代码抽象能力!

标签:

« 1 2 3 4 5 6 7 8 9 10 » 返回顶部