会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Flix
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
27
28
29
30
31
32
33
34
35
下一页
2020年3月19日
【剑指Offer-知识迁移能力】面试题56:数组中只出现一次的两个数字
摘要: 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路 假设一个数组中有 3 个数字,其中两个数字相同,那么这3个数字异或的结果就是那个只出现一次的数字,例如数组为 [1,2,1],则 1^2^1=2。题目中给的数组中存在两个只出现一次的数字,所
阅读全文
posted @ 2020-03-19 16:14 Flix
阅读(120)
评论(0)
推荐(0)
2020年3月18日
【剑指Offer-知识迁移能力】面试题55.2:平衡二叉树
摘要: 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路1 求出左右子树的长度来判断。代码如下: 思路2 思路1先根据根结点的左右子树深度判断是否是平衡二叉树,然后根据左右子树的左右子树判断,是从上到下的过程,这一过程底层的节点会被重复遍历,影响性能。如果我们用后序遍历的方式遍历每个节点,那么
阅读全文
posted @ 2020-03-18 20:56 Flix
阅读(129)
评论(0)
推荐(0)
【剑指Offer-知识迁移能力】面试题55:二叉树的深度
摘要: 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 一棵二叉树的深度是其左子树和右子树深度的最大值+1。拿左子树的深度来讲,左子树的深度等于其左右子树深度的最大值+1。递归这一过程即可,代码如下:
阅读全文
posted @ 2020-03-18 20:21 Flix
阅读(105)
评论(0)
推荐(0)
【剑指Offer-知识迁移能力】面试题54:二叉搜索树的第k大节点
摘要: 题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路 这个题考了二叉搜索树的一个性质:二叉搜索树的中序遍历序列是递增的。所以我们中序遍历一遍二叉排序树并记录下来,然后输出第k小的节点即可。代码如下:
阅读全文
posted @ 2020-03-18 20:11 Flix
阅读(128)
评论(0)
推荐(0)
【剑指Offer-知识迁移能力】面试题53:在排序数组中查找数字
摘要: 题目描述 统计一个数字k在排序数组中出现的次数。 思路1 直接遍历数组一遍,统计出现的次数,时间复杂度为O(logn)。代码如下: 由于二分查找的时间复杂度为O(logn),所以该算法的时间复杂度为O(logn)。
阅读全文
posted @ 2020-03-18 17:26 Flix
阅读(160)
评论(0)
推荐(0)
【剑指Offer-时间效率与空间效率的平衡】面试题52:两个链表的第一个公共节点
摘要: 题目描述 输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 思路 由于数据结构是链表,若两个链表存在公共节点,则从该公共节点往后的节点也是公共节点。 如果两个链表长度相等,则从头开始同时遍历两个链表,两个链表第一个相同
阅读全文
posted @ 2020-03-18 16:17 Flix
阅读(175)
评论(0)
推荐(0)
【剑指Offer-时间效率与空间效率的平衡】面试题50:第一个只出现一次的字符
摘要: ## 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). ## 思路1 遍历字符串,判断当前字符是否在当前字符之后出现过,也就是需要两个循环,时间复杂度为O(n^2)。 ## 思路2 使用哈
阅读全文
posted @ 2020-03-18 11:31 Flix
阅读(142)
评论(0)
推荐(0)
【剑指Offer-时间效率与空间效率的平衡】面试题49:丑数
摘要: 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路1 对每个数字都判断该数字是不是丑数,然后返回第N个丑数即可。丑数的判断方法是:如果一个数字能被2整除
阅读全文
posted @ 2020-03-18 11:09 Flix
阅读(115)
评论(0)
推荐(0)
2020年3月17日
【剑指Offer-时间效率】面试题45:把数组排成最小的数
摘要: 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路1 求出数组中所有元素的排列,然后找出最小的数返回。求字符串的排列可以参考 "面试题38:字符串的排列" ,
阅读全文
posted @ 2020-03-17 22:50 Flix
阅读(133)
评论(0)
推荐(0)
【剑指Offer-时间效率】面试题42:连续子数组的最大和
摘要: 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 3, 2,7, 15,1
阅读全文
posted @ 2020-03-17 20:39 Flix
阅读(116)
评论(0)
推荐(0)
上一页
1
···
27
28
29
30
31
32
33
34
35
下一页
公告