摘要: 把数字翻译为字符串 题目:给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”…25翻译成“z”。一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi。实现一个函数,用来计算一个数字有多少种不同的翻译方法。 思路:递归,遍历数字的 阅读全文
posted @ 2021-04-11 01:58 zqlucky 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 数字序列中某一位的数字 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 思路:以第15位数字2为例(2隶属与12,两位数,位于12从左侧以0号开 阅读全文
posted @ 2021-04-11 01:52 zqlucky 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 剪绳子 题目:给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 阅读全文
posted @ 2021-04-11 01:47 zqlucky 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 机器人的运动范围 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38), 阅读全文
posted @ 2021-04-11 01:28 zqlucky 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 矩阵中的路径 题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e 阅读全文
posted @ 2021-04-11 01:22 zqlucky 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口的最大值 题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: { 阅读全文
posted @ 2021-04-11 01:16 zqlucky 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 数据流中的中位数 题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中 阅读全文
posted @ 2021-04-11 01:12 zqlucky 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树的第k个结点 题目:给定一棵二叉搜索树,请找出其中的第k小的TreeNode结点。 思路: 二叉搜索树的中序遍历是递增的序列,使用循环的中序遍历找到第k个节点就行了。 func KthNode(pRoot *TreeNode, k int) *TreeNode { if pRoot == 阅读全文
posted @ 2021-04-11 00:53 zqlucky 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 序列化二叉树 题目:请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符 阅读全文
posted @ 2021-04-11 00:36 zqlucky 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 把二叉树打印成多行 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 func Print(root *TreeNode) [][]int { if root == nil { return [][]int{} } queue := []*TreeNode{root} res := 阅读全文
posted @ 2021-04-11 00:28 zqlucky 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 按之字形顺序打印二叉树 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路:最暴力的方法就是使用队列进行层次遍历,使用sz存储每层的节点个数。然后反转偶数层就可以了。 优化方法:使用两个栈,一个栈存奇 阅读全文
posted @ 2021-04-11 00:26 zqlucky 阅读(64) 评论(0) 推荐(0) 编辑