摘要: 链表题again. 实现链表节点的循环移位. 注意k的边界范围。思路:1. 得到链表长度N,指针end指向尾节点2. 找到新链表头节点在老链表中的前驱节点,记为p. p = N-k%N-13. end指向原链表head节点,此时链表为环状。更新链表头节点位置,head指向p->next。将p->next置为NULL,成为尾节点。Given a list, rotate the list to the right bykplaces, wherekis non-negative.For example:Given1->2->3->4->5->NULLan 阅读全文
posted @ 2013-10-25 13:54 Apprentice.Z 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 又一道链表题。CareerCup上也有类似题目,trick和“部分链表逆序”一样,由于不知道链表的长度,second指针比first指针先走n步,然后在同时向前移动,直到second指针到达链表尾。注意删除头节点的情况。假设链表长度为N,倒数第k个节点是正数第N-k个节点(k2->3->4->5, and n = 2.After removing the second node from the end, the linked list becomes 1->2->3->5.代码 1 /** 2 * Definition for singly-linked 阅读全文
posted @ 2013-10-22 14:57 Apprentice.Z 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 很久没有打理cnblog的站点了,用octopress在github上搭了一个新主页,学术一些的笔记po用markdown在github主页更新。之前偶尔翻翻careercup,也会用白纸写些代码,但是很难坚持上机验证,链表/树的测试用例有些麻烦。暑假的时候刷了一些USACO的题目,OJ题难度略高,不是很适合准备面试。以上内容,一言以蔽之,曰:懒。正找工作的师兄推荐了LeetCode这个面试题OJ平台,题目难度和careercup相当,是个不错的练习平台。在暑假实习面试被狂虐以后,是时候知耻而后勇了。计划每天做两道题,3个月左右完成。立贴为证。今天的题目是部分链表逆序,将给定链表第m个节点到第 阅读全文
posted @ 2013-10-22 14:49 Apprentice.Z 阅读(295) 评论(0) 推荐(0) 编辑
摘要: Problem C: recycled numbers (官方解答戳这里)题目背景:电视台播放节目时经常循环播放,数字对也会出现类似的情况。例如(12345, 34512)就是一对循环对,可以通过把位于‘12345’末尾的‘345’移到最前端就可以得到‘34512’. 当可以通过吧n最末尾的几位数字移到n的最前端,同时不改变数字的相对次序,从而得到m时,(n, m)为循环对。输入文件将给出循环对搜索范围A和B,找到[A, B]范围内不重复的循环对个数解题思路:我采用的是将数字转为字符串,对字符串进行移位操作得到movedNum,然后查看movedNum是否在[A, B]的范围之内的方法,很暴力 阅读全文
posted @ 2012-04-15 12:14 Apprentice.Z 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 说好的每日一题时间又到了~昨天是今年的Google Code Jam的Qualification Round,由于网络问题菜鸟康从晚上9点才开始答题,pass了problem A & B, 由于时间太晚头脑混沌,把problem C & D留作practice。Problem A - Speaking in Tongues (Google提供的官方解答)题目背景:在Google有一种叫做“Googlerese”的语言,要将Googlerese与正常的英文字符间存在“一一对应”的关系,例如存在以下的对应关系:'a' -> 'y', ' 阅读全文
posted @ 2012-04-15 11:23 Apprentice.Z 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 无责任无利益关系地为google code jam做个小广告,戳这里 。在playground玩耍了一会,题目都很有趣可爱~题目的简单翻译如下(原题见下方):输入文件的第一行为case的个数,每个case都是一行字符串,目标是要把该字符串以单词为单位进行逆序输出。引自官网的原题描述ProblemGiven a list of space separated words, reverse the order of the words. Each line of text contains L letters and W words. A line will only consist of let 阅读全文
posted @ 2012-04-10 22:47 Apprentice.Z 阅读(317) 评论(1) 推荐(0) 编辑
摘要: 据说每天做一些编程练习题可以防止智商下降,Practice Makes Perfect!首先是第一题,判断一个字符串中是否有重复的字符。抛开O(n^2)的暴力遍历方式,假设字符集为ascii编码(solution中特别提示:向面试官说明这一假设很重要!),先得到了一个版本:创建一个int型的数组ascii,并将其元素初始化为0。遍历string,分解得到它的每个字符对应的ascii码值,记为i;ascii[i]++, 若ascii[i]>1,则说明出现了重复字符。代码如下:bool isUniqueString(string str){ int ascii[256]; for(in... 阅读全文
posted @ 2012-03-06 14:01 Apprentice.Z 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 克服心理障碍开始搞毕设!实验结果是令人沮丧的(此处按下不表...),但是代码依然有存在的价值. 所以把它们同步到了github上,练习git的使用,虽然目前仍处于非常初级的熟悉阶段.git官网上有windows平台下安装git程序的帮助教程.解决了两个问题:1. git bash的中文乱码问题解决方案的传送门请戳这里虽然在服务器端中文路径依然乱码...不过在bash中已经可以输入中文了.2. git push操作的"non-fast-forward” errors$ git push origin masterTo ../remote/ ! [rejected] master -.. 阅读全文
posted @ 2012-02-15 23:18 Apprentice.Z 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 作为一名Automan, 说起来连科学计算手写板Matlab都玩得不转还真是惭愧。边查找命令边写程序,一个三、四十行的小程序就折腾了大半个下午的时间。所以,时时记记,谨防忘记。查找矩阵内的非零元素 - find函数index = find(X);若矩阵X为向量,则index向量中保存了X中非零元素所对应的下标。[r c] = find(X);若矩阵X为多维向量,则X中非零元素所对应的下标以[r c]形式存储。[r c] = find(X>0);find函数的参数也可以是条件表达式。矩阵的保存和读取 - load & saveload filename;load函数可以导入名为fi 阅读全文
posted @ 2011-12-13 17:57 Apprentice.Z 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 在Android平台刚刚推出的时候就对它非常关注,借intern的机会终于成为了一名Android apps developer。Java的基础和Android入门集中在最近的一两周,通过本周的实战任务(Menu编写)体会到一点点开发的感觉,简单地做一下回顾和记录,有待随着日后对于Android的理解加深而不断地修正补充。一个Android project的目录架构长这样:接下来对其中主要的一些catalogs进行介绍。src: 和普通的java project类似,源程序文件都放在src文件目录下。res: 这个目录应该是Android project的一个特色。drawable文件夹中存储 阅读全文
posted @ 2011-11-19 00:32 Apprentice.Z 阅读(398) 评论(0) 推荐(0) 编辑