
leetcode
文章平均质量分 50
wang_cheng_hei
这个作者很懒,什么都没留下…
展开
-
Insertion Sort List
Sort a linked list using insertion sort链表的插入排序struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution {public: ListNode *inserti原创 2014-03-26 11:21:31 · 563 阅读 · 0 评论 -
Sort a linked list in O(n log n) time using constant space complexity
链表的排序问题,要求常数级的空间复杂度,时间复杂度为nlogn,因为是在链表上的操作,所以可以选择归并排序,如果是在数组上的话,应该空间复杂度就不能满足情况了,下面是代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNo原创 2014-03-25 11:31:44 · 823 阅读 · 0 评论 -
Evaluate Reverse Polish Notation
some example:其实就是一个后序遍历求值的问题,利用栈的后进先出的思想,每次遇到一个运算符,进行两次出栈操作,找出对应的两个数字并计算值,然后重新入栈。以前一直以为只要判断字符'9'就能判断是否是运算符,但是提交失败,原来会存在负数的情况,这点以前没有注意到,还好这里面只有4个运算符.class Solution {public: int evalRPN(vecto原创 2014-03-19 11:44:24 · 630 阅读 · 0 评论 -
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
目标:求平面上在一条直线上最多的点的个数 首先想到了多点共线的规律就是两两之间的斜率相同,提到斜率又要考虑到斜率不存在的情况,即求斜率公式的分母为0.然而这边也存在两种情况,一个就是真的斜率不存在,另外一个就是两个点是相同的,这样的话也是无法计算斜率的,这两点都要考虑到。代码的主要部分就是一个二重循环,第一重循环式选取初始点,第二重循环遍历其他点,找出与初始点共线最多的点。struct P原创 2014-03-19 11:07:43 · 1803 阅读 · 0 评论 -
Leetcode: LRU Cache
转载自点击打开链接Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.get(key) - Get the value (will always be positive) o转载 2014-03-26 14:43:35 · 588 阅读 · 0 评论 -
Binary Tree Preorder/postorder Traversal
Binary Tree Preorder Traversal递归struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution{public: void p原创 2014-03-28 16:11:52 · 620 阅读 · 0 评论 -
Reverse Words in a String
要求逆向输出,好像就是栈的思想嘛(后进先出),这会儿才想起来..... 代码用的是vector容器,用的是反向迭代器,反向输出即可.其实只要分两个步骤,第一个是依据空格,提取出一个个单词,存进容器。第二步就是相应的输出了。但是第一步的时候要考虑下空格的问题,就是在首单词之前或者单词之间或者字符串最后可能会有若干空格。我代码中也是将空格提取了出来,然后进行统一的删除,这样好像复杂了,但是我感觉代码统原创 2014-03-19 11:55:32 · 639 阅读 · 0 评论 -
leetcode: Reorder List
Problem:Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorder it原创 2014-04-22 13:18:30 · 595 阅读 · 0 评论 -
leetcode Linked List Cycle II
问题:Given a linked list, return the node where the cycle begins. If there is no cycle, return null原创 2014-04-23 13:48:46 · 692 阅读 · 0 评论