问题描述 Node类中的value是节点值,next指针和正常单链表中next指针的意义一样,都指向下一个节点,rand指针是Node类中新增的指针,这个指针可能指向链表中的任意一个节点,也可能指向null。 给定一个由Node节点类型组成的无环单链表的头节点head,请实现一个函数完成这个链表中所 ...
分类:
其他好文 时间:
2019-05-20 01:11:48
阅读次数:
105
题目描述 从N个元素中随机抽取k个元素,但的k个数无法事先确定。 在实际应用中,往往会遇到很大数据流的情况。因此,我们无法先保存整个数据流然后再从中选取,而是期望有一种将数据流遍历一遍就得到所选取的元素,并且保证得到的元素是随机的算法。 特别地,此题元素为1 N。 解题思路 蓄水池算法。 1. 先选 ...
分类:
编程语言 时间:
2019-05-18 22:31:17
阅读次数:
165
题目 给定数组arr和整数num,求数组的子数组中有多少个的满足“最大值减去最小值 maxQue = new LinkedList(); LinkedList minQue = new LinkedList(); int i = 0; int j = 0; while (i = arr[j]) { ...
分类:
编程语言 时间:
2019-05-16 22:53:29
阅读次数:
159
问题描述 输入数组arr={4,3,5,4,3,3,6,7},窗口大小w=3,窗口由左向右移动,输出每个窗口最大值组成的数组。 解题思路 数据结构:使用ArrayList模拟双端队列。 遍历一遍arr,时间复杂度O(n)。具体地, 队列队尾的位置对应的元素若不比当前位置对应元素大,则弹出,否则,将当 ...
分类:
编程语言 时间:
2019-05-14 23:10:50
阅读次数:
298
问题描述 给定一个字符串,输出把它全部切成回文子串的最小分割数。 例:str="ACDCDCDAD",输出2。 解题思路 DP 存储结构 dp数组dp[len+1],dp[i]表示子串str[I:len]至少需要切割几次,才能都切割成回文串。 对应的,循环从右至左进行。 注意 dp[i]的含义完全可 ...
分类:
其他好文 时间:
2019-05-13 23:02:49
阅读次数:
157
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 示例 2: 参考:程序员代码面试指南 2019-05-13 15:47:27 ...
分类:
编程语言 时间:
2019-05-13 15:58:46
阅读次数:
115
问题描述 如题。 例:输入两个字符串 str1="1AB234",str2="1234EF" ,应输出最长公共子串"234". 解题思路 状态表示 dp[i][j]表示把str1[I]和str2[j]作为公共子串的最后一个字符,最长公共子串的长度。 最终,找到dp数组中的最大值及其位置,则可计算并获 ...
分类:
其他好文 时间:
2019-05-11 23:04:02
阅读次数:
156
题目描述 给定arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,求组成aim的最少货币数。 解题思路 dp[i][j]表示只用第0到i种货币,凑成j元的最小货币张数。 初始化: 转移方程: 整理得 变换得 整理得 变换得最终转移方 ...
分类:
其他好文 时间:
2019-05-10 21:55:33
阅读次数:
137
题目描述 一行N个位置1到N,机器人初始位置M,机器人可以往左/右走(只能在位置范围内),规定机器人必须走K步,最终到位置P。输入这四个参数,输出机器人可以走的方法数。 解题思路 DP 方法一:时间复杂度O(NK),空间复杂度O(NK) 方法二:时间复杂度O(NK),空间复杂度O(N) 方法一代码 ...
分类:
其他好文 时间:
2019-05-09 00:48:01
阅读次数:
181