- 博客(13)
- 收藏
- 关注
原创 程序员代码面试指南刷题--第八章.不重复打印排序数组中相加和为给定值的所有三元组
题目描述给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序三元组例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为:-4 5 9-3 4 9-3 5 80 1 90 2 81 4 5[要求]时间复杂度为O(n2)O(n^2)O(n2),空间复杂度为O(1)O(1)O(1)输入描述:第一行有两个...
2019-12-30 10:20:09 309 1
原创 程序员代码面试指南刷题--第八章.不重复打印排序数组中相加和为给定值的所有二元组
题目描述给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为:1, 92, 8[要求]时间复杂度为O(n),空间复杂度为O(1)输入描述:第一行有两个整数n, k接下来一行有n个整数表示数组内的元素输出描述:输出若干行,每行两个整数表示答案...
2019-12-30 09:43:46 180
原创 程序员代码面试指南刷题--第一章.最大值减去最小值小于或等于num的子数组数量
题目描述给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况:max(arr[i…j] - min(arr[i…j]) <= nummax(arr[i…j])表示子数组arr[i…j]中的最大值,min[arr[i…j])表示子数组arr[i…j]中的最小值。输入描述:第一行输入两个数 n 和 num,其中 n 表示数组 arr 的长度第二行输入n个整数XiX_iX...
2019-12-27 10:56:38 152
原创 程序员代码面试指南刷题--第一章.求最大子矩阵的大小
题目描述给定一个整型矩阵 map,其中的值只有 0 和 1 两种,求其中全是 1 的所有矩形区域中,最大的矩形区域里 1 的数量。输入描述:第一行输入两个整数 n 和 m,代表 nm 的矩阵接下来输入一个 nm 的矩阵输出描述:输出其中全是 1 的所有矩形区域中,最大的矩形区域里 1 的数量。示例1输入1 41 1 1 0输出3说明最大的矩形区域有3个1,所以...
2019-12-26 14:14:00 347
原创 程序员代码面试指南刷题--第一章.单调栈结构(进阶)
题目描述给定一个可能含有重复值的数组 arr,找到每一个 i 位置左边和右边离 i 位置最近且值比 arr[i] 小的位置。返回所有位置相应的信息。输入描述:第一行输入一个数字 n,表示数组 arr 的长度。以下一行输入 n 个数字,表示数组的值输出描述:输出n行,每行两个数字 L 和 R,如果不存在,则值为 -1,下标从 0 开始。示例1输入73 4 1 5 6 2 7...
2019-12-24 09:49:00 362
原创 程序员代码面试指南刷题--第一章.单调栈结构(基础)
题目描述给定一个不含有重复值的数组 arr,找到每一个 i 位置左边和右边离 i 位置最近且值比 arr[i] 小的位置。返回所有位置相应的信息。输入描述:第一行输入一个数字 n,表示数组 arr 的长度。以下一行输出 n个数字,表示数组的值。输出描述:输出n行,每行两个数字 L 和 R,如果不存在,则值为-1,下标从0开始。示例1输入73 4 1 5 6 2 7输出...
2019-12-23 10:15:14 205
原创 程序员代码面试指南刷题--第一章.生成窗口最大值数组
题目描述有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置,求每一种窗口状态下的最大值。(如果数组长度为n,窗口大小为w,则一共产生n-w+1个窗口的最大值)输入描述:第一行输入n和w,分别代表数组长度和窗口大小第二行输入n个整数XiX_iXi,表示数组中的各个元素输出描述:输出一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下...
2019-12-22 09:32:12 131
原创 程序员代码面试指南刷题--第一章.用栈来求解汉诺塔问题
题目描述汉诺塔问题比较经典,这里修改一下游戏规则:现在限制不能从最左侧的塔直接移动到最右侧,也不能从最右侧直接移动到最左侧,而是必须经过中间。求当塔有n层的时候,打印最优移动过程和最优移动总步数。输入描述:输入一个数n,表示塔层数输出描述:按样例格式输出最优移动过程和最优移动总步数示例1输入2输出Move 1 from left to midMove 1 from mi...
2019-12-21 09:17:16 128
原创 程序员代码面试指南刷题--31.汉诺塔问题
题目描述给定一个整数n,代表汉诺塔游戏中从小到大放置n个圆盘,假设开始所有圆盘都在左边的柱子上,那么用最优的办法把所有圆盘都移动到右边的柱子上的过程,就称为最优移动轨迹。给定一个整型数组arr, 其中只含有1、2和3,代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,a[i]的值代表第i+1个圆盘的位置(a[i]下标从0开始)。比如,arr=[3,3,2,1], 代表第1个圆盘在右柱上...
2019-12-19 09:32:50 183
原创 程序员代码面试指南刷题--第四章.汉诺塔问题
一个汉诺塔的移动过程public class Test { public static void main(String[] args){ Test t = new Test(); t.hanoi(2); } public void hanoi(int n) { if (n > 0) { func(n, "left", "mid", "right"); } }...
2019-12-09 09:12:22 135
原创 程序员代码面试指南刷题--第一章.用一个栈实现另一个栈的排序
题目描述一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?输入描述:第一行输入一个N,表示栈中元素的个数第二行输入N个整数aia_iai表示栈顶到栈底的各个元素输出描述:输出一行表示排序后的栈中栈顶到栈底的各个元素。示例1输入55 8 4 3 6输出8 6 5 4 3...
2019-12-04 13:05:31 142
原创 程序员代码面试指南刷题--第一章.猫狗队列
题目描述实现一种猫狗队列的结构,要求如下:用户可以调用 add 方法将 cat 或者 dog 放入队列中用户可以调用 pollAll 方法将队列中的 cat 和 dog 按照进队列的先后顺序依次弹出用户可以调用 pollDog 方法将队列中的 dog 按照进队列的先后顺序依次弹出用户可以调用 pollCat 方法将队列中的 cat 按照进队列的先后顺序依次弹出用户可以调用 isEmp...
2019-12-03 09:49:02 222
原创 程序员代码面试指南刷题--第一章.用递归函数和栈逆序一个栈
题目描述一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。输入描述:输入数据第一行一个整数N为栈中元素的个数。接下来一行N个整数XiX_iXi表示从栈顶依次到栈底的每个元素。输出描述:输出一行表示栈中元素逆序后的每个元素示例1输入5...
2019-12-01 12:45:27 173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人