1。明智地使用下标 下标是非常有用的数字,尤其是在计算或判断某些数字时。或者首先出现类型编号。例如,如果给您一系列字母并要求您猜测这些字母出现了多少次,我们可以使用这些字母作为保留。当遍历字母a时,arr[a]可以加1。也就是arr[a]+...
2。巧妙利用其余部分 有时,当我们走过田野时,我们会做出超出界限的判断。如果下标快出界了,我们又把Traverse设置为0,尤其是一些循环数组,比如用数组实现的队列。我们经常这样写代码:for (int i = 0; i < N; i...
3。巧妙使用双指针 双指针对于问单链表的问题特别有用,比如“找出单链表是否有环”、“如何做”。对于这类问题,我们可以使用双指针指针,方便多了。顺便告诉你如何使用双指针来解决这三个问题。例如第一题,我们可以设置一个慢速指针和一个快指针遍历链表...
4。放哨兵位 关系到链表的问题,我们经常放一个主题,而这个主题索引不存储有效数据,为了便于工作,而这个头指针可以称为哨兵位。 。 例如,当我们要删除表头的第一个节点时,如果没有设置哨兵位,则删除第二个节点的操作会有所不同。但我们构建了哨兵,...
5。一些与递归相关的优化 (1)。考虑可能递归的问题的状态保存当我们使用递归来解决问题If时,很容易一遍又一遍地计算相同的子问题。这时候我们就需要考虑状态守恒,避免重复计算。例如,我随机问你一个我之前提出的问题问题:青蛙一次可以跳1级或2级...
6。找出两个不重复的数字第一题【找出不重复的数字】给你一组整数数据。在该数据中,一个数字仅出现一次,其他数字出现两次。让你找个号码。 有人问如果两个数字出现一次,其他数字出现一次,我们还能用按位运算来求这两个数字吗? 必填答案。如果一次显示...
7. 求不大于N的2的最大幂指数 传统方法是1乘2,代码如下:int findN(int N){ int sum = 1; while(true){ if(sum * 2 > N){...
计算机图形学的最终目标是满足人类视觉系统最近出版了一本名为《计算机图形学 原理及实践》的书。这本书让我深深感动的是引言中对计算机构建真实图像的理解:我们致力于的最终目标是以视觉元素的形式进行交流,尤其是与人的交流。 这句话的潜台词是:在解决...
当我们有二叉搜索树/平衡树时,为什么还需要红黑树? ?如果我想让你在红树和黑树上手写面试官,就再见。这就是为什么你对红黑树的理解受到更多考验。一个常见的问题是当你有二叉搜索树/平衡树时,为什么还需要红黑树? 这个问题,今天给你,只需要一分钟...
树是数据结构中非常重要的一部分。树的用途很多,树的种类也很多。今天我们将把它创建为第一棵公共树。 首先,树的形状类似于这样: 顶点称为树的根节点。一棵树只能有一个根节点,该节点下可以有多个子节点。这里我们不要求节点的数量,没有子节点的节点称...