上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 32 下一页
摘要: 最小的K个数 给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组 方法1:堆思路和算法 我们用一个大根堆实时维护数组的前 k 小值。首先将前 k 个数插入大根堆中,随后从第 k+1个数 阅读全文
posted @ 2021-04-10 10:18 zqlucky 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 本题常见的三种解法: 哈希表统计法: 遍历数组 nums ,用 HashMap 统计各数字的数量,即可找出 众数 。此方法时间和空间复杂度均为 O( 阅读全文
posted @ 2021-04-10 00:04 zqlucky 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 字符串的排列 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 思路: 对于一个长 阅读全文
posted @ 2021-04-09 23:42 zqlucky 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路: 二叉搜索树的中序遍历为 递增序列 。将 二叉搜索树 转换成一个 “排序的循环双向链表” ,其中包含三个要素: 排序链表: 节点应从小到大排序,因此应使用 阅读全文
posted @ 2021-04-09 22:38 zqlucky 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 复杂链表的复制 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路:1)空间复杂度O(1),时间复杂度O(N) 阅读全文
posted @ 2021-04-09 21:59 zqlucky 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 二叉树中和为某一值的路径 输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 解题思路: 递归回溯的解法 1.按照前序方式去遍历(根,左,右)2.递归处理: 忽略空节点 递归过程中去修改sum的 阅读全文
posted @ 2021-04-09 01:15 zqlucky 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 解题思路二叉搜索树:左子树的元素是都小于根元素,右子树都大于根元素后序遍历:首先遍历左子树,然后遍历右子树,最后访问根结点,所以数组最 阅读全文
posted @ 2021-04-09 00:39 zqlucky 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 从上往下打印二叉树 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 func PrintFromTopToBottom( root *TreeNode ) []int { if root == nil { return []int{} } queue := []*TreeNode{root} 阅读全文
posted @ 2021-04-08 23:37 zqlucky 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 栈的压入、弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。 解题思路1,用go语言slice建一个辅助栈,来顺序添加压入序列2,每次添加一个元素,去跟弹出序列比较,若不同,继续添加。若相同,则弹出,继续拿新建栈的栈顶元素去跟 阅读全文
posted @ 2021-04-08 22:39 zqlucky 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 思路:一个栈存普通元素,一个最小栈存放目前位置最小的元素,只在压入的时候判断是否为空以及最小元素,其他情况正常处理。 package main import ( "math" ) var stack = []int{} 阅读全文
posted @ 2021-04-08 22:19 zqlucky 阅读(32) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 32 下一页