04 2016 档案

摘要:思路:第一时间想到的肯定是通过添加计数器解决这个问题,但是问题产生了,链表具有单向性,统计总数,还是计算当前数目都在效率上面很吃亏。 借用快慢指针的思想。可以安排两个同速指针,但是他们存在先后顺序,就可以解决这个问题。 阅读全文
posted @ 2016-04-23 09:38 ProWhalen 阅读(133) 评论(0) 推荐(1)
摘要:方法1:归并排序思路: (1)设计一个寻找中间节点的函数;(2)设计一个归并两个已经有序的函数;(3) 主函数; 其中第一个函数思想:是在109题转换成BST当中使用的那样,同时也是快慢链表解决环形链表当中的设计一样的思路! 思路2:利用快速排序思想!!! 首先,快速排序有两种,一种是三分,一种是二 阅读全文
posted @ 2016-04-16 15:12 ProWhalen 阅读(286) 评论(1) 推荐(0)
摘要:思路:情况可以分为三类:A:输入没有节点;B:输入1个节点;C:输入多个结点;其中情况C:在用了思考了交换节点,两两分组之后可以规约成:(1):奇数节点,也就是交换完成后,剩下一个前面的情况B;(2)偶数节点:刚好交完完成; 分别从这两个大类型出发设计算法如下: 阅读全文
posted @ 2016-04-15 09:54 ProWhalen 阅读(204) 评论(0) 推荐(0)
摘要:看问题,首先想到的解决办法如下: (1)单独设计一个函数可以,计算出有序链表的中间节点的前驱节点。后续会看到原因,这个函数进入的有序链表长度长度至少有2个节点; (2)回到原来需要设计的函数: a. 如果没有节点返回null,如果是只有一个节点,将这个节点制造成树节点返回;由于这个原因,输入到寻找前 阅读全文
posted @ 2016-04-13 10:51 ProWhalen 阅读(245) 评论(0) 推荐(0)
摘要:函数: 1. 函数一定存在返回值,没返回值时返回None; 2. 函数内赋新值不会改变外部任何变量的值,这一点类似java;但是对于可变参数列表另当别论; 3. == 判断相等性,值考虑空间里面值的情况;is 同一性(等级更高,必然具有相等性) 4. 位置参数-> 关键字参数-><!--?xml v 阅读全文
posted @ 2016-04-12 22:29 ProWhalen 阅读(174) 评论(0) 推荐(1)
摘要:1. print 'Age,',42 存在的逗号,会转化成空格! 2. import 导入模块; from 模块 import 函数; import math as foobar 给包取别名; 3. 序列解包: A 可以多值赋值,x, y, z = 1, 2, 3; B 对键值对也有效,key, v 阅读全文
posted @ 2016-04-12 21:35 ProWhalen 阅读(159) 评论(0) 推荐(1)
摘要:字典 {} 是Python中唯一内建的映射类型;它的键可以是数字,字符串,或者元组; key and value 之间用冒号,项之间是逗号; (1)dict(元组构成的列表!!!),或者通过key=值的方式构造; (2)len(d),d[k],del d[k], k in d// k 是项; (3) 阅读全文
posted @ 2016-04-12 20:44 ProWhalen 阅读(129) 评论(0) 推荐(1)
摘要:基本输入方式举例: format = "Hello, %s . %s enough for ya?" values = ('world','Hot') print format % values \\注意,后者是一个元组; 需要注意到是,直接用python打印,会保持该值在代码中的状态,str(); 阅读全文
posted @ 2016-04-12 17:30 ProWhalen 阅读(140) 评论(0) 推荐(1)
摘要:A:通用序列操作 (1)索引:起始标志,负数表示方法,字符串直接引用;(2)分片:看作索引的加强版:注意第二个位置元素不算在分片范围内;步长为负,大小关系改变要注意!另外注意[:]用来复制,[:3]等类型; (3)序列相加:序列和字符串不可以相加; (4)乘法:注意[None]*10 (5)成员资格 阅读全文
posted @ 2016-04-12 17:01 ProWhalen 阅读(143) 评论(0) 推荐(1)
摘要:题目描述很见到,不多介绍。一开始思路肯定去查看数组的插入排序;贴个普林斯顿大学——算法第四版的网上java代码库振振楼:http://algs4.cs.princeton.edu/home/ 但是,他和基本的数组排序还是有区别的。链表是单向的,检索起来必须从头开始,所以这里必须重新设计; 受到高手代 阅读全文
posted @ 2016-04-12 14:58 ProWhalen 阅读(595) 评论(0) 推荐(1)
摘要:读完题,第一时间想到的办法就是交织前进两个指针,不断判断是否找到合理的焦点。但是,后来发现这个方法不可取。因为,交织前进忽略了长度不等时,许多的判断问题。查阅大人解法后,发现可行的方案是: A,先把问题转化为计算长度的问题,遍历两个链表。 B,利用A的结果,可以先回答是否存在焦点这个问题,然后,可以 阅读全文
posted @ 2016-04-12 09:24 ProWhalen 阅读(345) 评论(0) 推荐(1)
摘要:这道题是21题合并2个有序链表的升级版本,看了许多解题思路: A:直接暴力解锁,全部放进一个堆,然后依次吐出来; B:利用21题的算法,循环一次做两两合并,这样就得到结果;但是时间复杂度有点差; C:利用归并排序思想,进行分治;其实就是利用递归,牺牲空间,提升时间效率; 存在的问题是:看过了许多解答 阅读全文
posted @ 2016-04-11 23:20 ProWhalen 阅读(233) 评论(0) 推荐(1)
摘要:题目描述已经给的十分清晰了,不再重复; 思路:(1)创建表头,用于返回合并后的新链表的用途; (2)创建跟踪指针:index; (3)然后层次分为两部分 A:管理两个已排序链表都有值的情况; B:管理当一方链表没有值的情况; A当中:利用循环不断比较每次l1和l2前面的两个元素,选择较小的加入ind 阅读全文
posted @ 2016-04-11 20:42 ProWhalen 阅读(502) 评论(0) 推荐(1)
摘要:这是一道很常见的链表算法题,题意一般是实现某个单向链表的反向重置。我在百度面试过程中被问到。我在阅读材料时,这个道题曾是微软面试题。 需要一个标记指针,和两个辅助指针。每次前进标记指针,把其他两个指针位点进行调整。 阅读全文
posted @ 2016-04-10 22:54 ProWhalen 阅读(135) 评论(0) 推荐(1)
摘要:这是一道程序员面试金典上面的练习题;读完题其实结题思路很明显了; 输入矩阵—>搜索出为零的部位—>利用为零的部位信息重新遍历矩阵给该赋值0的位点给0—>结束 可以看到,常规解法时间复杂度还是蛮大的需要两次O(N*M)的统计过程; 回想到Leetcode 有相同的题目:73. Set Matrix Z 阅读全文
posted @ 2016-04-07 10:10 ProWhalen 阅读(341) 评论(1) 推荐(2)
摘要:题目描述:如何给一个N*M的矩阵输出一个逆时针螺旋读取的元素; 在题目看完时;就想起的程序员面试金典这本书里面一道类似的题目;原题要求是实现N*N矩阵元素的旋转换位;相比这道题不同之处在于,(1)矩阵的形状变的更随意了;(2)矩阵层次感还是一样的;(3)原来的元素值交换成了赋值; 其中可借鉴的思想: 阅读全文
posted @ 2016-04-06 23:19 ProWhalen 阅读(1542) 评论(3) 推荐(3)
摘要:题目描述:N个段落 P个页面 W的段长 H的页长 一个数组给出每个段落的字数 目标找到符合要求的最大字符大小。 难点:(1)必须根据题目的描述,给出符合条件的字符输入方案; (2)使用二分法不断逼近可选择的最大字符大小; (3)如何利用判断表达式实现取整,和选择; 重要思想:最令人迷茫的地方在于,字 阅读全文
posted @ 2016-04-06 23:09 ProWhalen 阅读(495) 评论(1) 推荐(2)
摘要:在过去的岁月里,我一直想将自己变成一位软件工程师。我选择电子信息工程专业作为的本科专业,选择了通信与信息系统专业作为我的研究生专业。然而在经历了一次又一次的抉择和调整之后我还是想做一名软件工程师,更希望是一名大数据软件工程师。在离开了贝尔实验室,思科系统的实习之后,我决定系统梳理写过的所有代码(算法 阅读全文
posted @ 2016-04-06 22:54 ProWhalen 阅读(169) 评论(0) 推荐(0)