Linked List Cycle

所谓拳不离手曲不离口,算法和基础不能丢。 话说三藏师徒四人辞别女儿国,再上西行路,今天来到。。。啊呸,扯远了。。 今天来看这个,https://oj.leetcode.com/proble…,题目是这么说的 Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space? 这题原……

阅读全文

练手代码白板

先来一个简单的 list #include <stdio.h> class ListNode { public: ListNode(int n) { this->n = n; this->pNext = NULL; } int n; ListNode* pNext; }; class List { public: ListNode* pHead; List(ListNode* pHead) { this->pHead = pHead; } List* add(ListNod……

阅读全文

生成可重集的排列

刘汝佳在算法竞赛入门经典,http://book.douban.com/subject…,的 118 页提到生成一个可重集的全排列问题,跟上次的 生成一个字符串的全排列 很相像,但是写法却巧妙很多 #include <stdio.h> void quick_sort(int a[], int left, int right) { int i=left, j=right; int povit = a[(i+j)/2]; while (i ……

阅读全文

栈结构练习

今天从刘汝佳的书上看到一个简单的栈的题目 有n节车厢从A方向驶入车站,按进站顺序编号1~n。现让这些火车按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,可以借助中转站C。C是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出C。对于每个车厢,一旦从A移入C,就不能再……

阅读全文