面向对象的三大特点是封装、继承、多态,其中extends类和implements接口是多态的基础,所谓多态,是对一个对象而言的,例如有一个父类叫...
51.构建乘积数组 通过B[i]的构成不难发现它总由左右两个部分组成,所以我们可以用两个辅助数组,一个数组left用来存从0到i-1的所有乘积,...
46.孩子们的游戏 这个题考察的就是抽象建模能力,我们可以把最原始的n个小朋友构造成一个环形链表,就是普通的单链表的尾结点连接上头结点即可;然后...
41.和为S的连续正数序列 这个题最直观的想法就是从1,2开始用枚举法算出所有的连续正数序列的和,直到第一个数和第二个数的和大于我们要求的数,例...
56.删除链表中重复结点 这个题最开始的时候本人用的是三指针的方法,pre保留前一个位置,cur表示当前位置,next表示下一个位置,当cur....
36.两个链表的第一个公共结点 拿到这个题,试想一下,如果两个链表的长度一样,应该怎么做,当然就是两个链表从头结点开始同时往后遍历,找到第一个相...
31.整数中1出现的次数 这个题在前面的一篇文章里面有写到过更普及的K出现的次数,关键点有两个:1.统计的是k出现的次数,而不是包含k的数字的个...
26.二叉搜索树与双向链表 由于二叉搜索树已经是排序好的了,因此我们可以采用中序遍历的方式,对每个结点改变指针的方向 我们需要用两个辅助指针,一...
LRU全称Least Recently Used,最近最久未使用算法,是一种OPT的一种近似替代,可以采用两种方式实现,即链表和有序哈希表。这里...