模拟题 开一个容器进行模拟即可,注意容器设置初始大小不然容易re。设置两个指针l,r。把容器当作桶,每一个桶都有一个编号表示位置,左边进入那么就是编号为l,右边一样。然后l 或者r++,l=r=0的初始值,第一个元素为0,然后同时l ,r++ 代码(cf上的题解) include using nam ...
分类:
其他好文 时间:
2018-10-13 14:46:27
阅读次数:
121
two pointers练习题。 这道题求的是一个最短的区间长度,满足其中所有的数字都出现。 暴力的做法是两次枚举,复杂度$O(n^2)$。 更优美的是尺取法,英文名叫two pointers。(两个指针。。。) 算法大概的过程是这样的: 其实真的是很优美的,代码也很短。 希望我能真的学会吧。。。 ...
分类:
其他好文 时间:
2018-10-13 02:36:11
阅读次数:
116
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 提交链接:点击 思路: 代码: ...
分类:
其他好文 时间:
2018-10-12 01:22:53
阅读次数:
135
141. Linked List Cycle (环形链表) 题目概述:判断一个链表中是否有环 思路 创建两个指针(快指针和慢指针),慢指针的移动方式为:单次移动一个结点;快指针的移动方式为:单次移动两个结点。如果快指针指向的结点和慢指针指向的结点相同(注:这里的结点指向了对象,所以直接通过==判断是 ...
分类:
其他好文 时间:
2018-10-11 22:01:19
阅读次数:
163
单链表: 链表是动态分配内存在内存中不连续,单链表只有一个向下的指针,指向下一个节点,单链表的定位时间复杂度是O(n),插入删除的时间复杂度是O(1) 双链表: 链表是动态分配内容在内存中不连续,单双链表一致,双链表有两个指针prov,next ,prov指向上一个节点,next指向下一个节点,理论 ...
分类:
编程语言 时间:
2018-10-10 23:51:54
阅读次数:
217
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 题目分析 1.如果链表为空链表,则返回本身即可 2.如果非空 需要进行复制 ...
分类:
编程语言 时间:
2018-10-10 23:45:24
阅读次数:
290
代码实现的不同方法用(#if 0 ..... #endif)注释 1 #include<Windows.h> 2 #include<stdio.h> 3 #if 0 4 //这种方法使用两个指针来遍历数组,运用两个for循环,时间复杂度为O(n^2),空间复杂度为O(1) 5 void test() ...
分类:
编程语言 时间:
2018-10-07 18:03:15
阅读次数:
181
一、题目 1、审题 2、分析 给出一个完全二叉树,添加二叉树的 next 指针指向。 二、解答 1、思路: 方法一、 采用队列进行层次遍历,遍历时添加 next 指针。 方法二、 利用两个指针进行层次遍历,添加 next 指针 方法三、 利用递归实现每一层的 next 指针。 ...
分类:
其他好文 时间:
2018-10-05 18:59:26
阅读次数:
172
删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 方法一解题思路:要求删除倒数第N个节点,可以先设两个指针同时指向链表的第一个节点,一个指针遍历链表统计出总共有多少个节点记为i,用总数减去N,即可以算出要删除的节 ...
分类:
其他好文 时间:
2018-10-05 16:11:24
阅读次数:
168
网上的相关教程非常多,基础知识自行搜索即可。即可。 习题主要选自Orelly出版的《数据结构与算法javascript描述》一书。 参考代码可见: "https://github.com/dashnowords/blogs/tree/master/Structure/Queue" 队列的基本知识 特 ...
分类:
其他好文 时间:
2018-10-04 11:20:58
阅读次数:
191