Daily Archives: April 13, 2015


[leetcode] Remove Duplicates from Sorted List II

Remove Duplicates from Sorted List II Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1->1->2->3, return 2->3. 困倦时不要解题,这题做了3遍才AC。 一个bonus,删掉多余的node,以免内存溢出。 我用了superHead的技巧,不用再单独判断链表的起始情况。 查看当前节点和下一个节点,如果相同,将isDuplicated置1.当遇到当前节点和下一节点不同时,看isDuplicated的值,如果是1,则忽略掉它,把isDuplicated置0.如果是0,证明当前节点没有重复,连入结果链表中。 /** * Definition for singly-linked list. * struct ListNode { […]


理解RESTful架构

刚刚读了一篇博文,关于RESTful架构的理解。觉得讲得不错,作一下笔记。 原文链接:http://www.ruanyifeng.com/blog/2011/09/restful.html REST的全称为Representational State Transfer 表现层状态的转化。 实际上这句话省略了一个主语,就是resource。 资源的表现层状态的转化。 资源是一种信息实体,它可以有多种外在的表现形式,我们把资源具体呈现出来的形式,叫做它的表现层。 互联网通讯的HTTP协议,是一个无状态协议。如果客户端想要操作服务器,必须通过某种手段,让服务端发生状态转化,这种转化是建立在表现层之上的,所以就是表现层状态转化。 HTTP协议里有四个表示操作方式的动词:GET,POST,PUT,DELETE。 GET用于获取资源 POST用于新建资源(也可用于更新资源) PUT用于更新资源 DELETE用于删除资源。 设计误区 URI代表的是一种资源实体,客户端与服务端之间,传递这种资源的表现层。 所以,URI中不应包含动词。动词应该放在HTTP协议中。 比如,某个URI是/posts/show/1其中show是动词,这个URI就设计错了。应该用GET表示show这个动作,URI应该写成/posts/1 如果一些动作是HTTP那四个动词表示不了的,那应该把动作做成一种资源。比如网上汇款,从账户1向帐户2汇款500元。 POST /accounts/1/transfer/500/to/2 正确的写法应把transfer改为名词transaction。把具体的信息写在post数据里。资源不能是动词,但可以是一种服务。 POST /transaction from=1&to=2&amount=500.00   需要指出,HTTP的四种动作中。GET,PUT,DELETE,HEAD,是幂等(Idempotent)的。无论对一个资源操作了多少次,返回的数据均相同。 评论补充 楼主的理解非常的好, 有一些我想补充, 顺别回答其它一些朋友的问题. 根据理查德森模型 (http://martinfowler.com/articles/richardsonMaturityModel.html), REST架构的成熟度有3个等级: Level 0 POX (这个就不算REST了) Level 1 Resources Level 2 Http verbs Level 3 Hypermedia Controls […]