面试题
武倔
科技就是力量
展开
-
算法题 树的重心(Python)
题目给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。输出格式输出一个整数m,表示将重心删除后,剩余各个连通块中点数的最大值。数据范围1≤n≤10^5输入样.原创 2020-11-27 11:39:12 · 625 阅读 · 0 评论 -
算法题 八数码 Python版
在一个3×3的网格中,1~8这8个数字和一个“x”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3x 4 67 5 8在游戏过程中,可以把“x”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 x例如,示例中图形就可以通过让“x”先后与右、下、右三个方向的数字交换成功得到正确排列。交换过程如下:1 2 3 1 2 3 1 2 3 1 2 3x 4原创 2020-11-26 15:10:15 · 3800 阅读 · 0 评论 -
算法题 n-皇后 Python版
题目:https://www.acwing.com/problem/content/845/实现:n = int(input()) # 输入ncol = [True]*n # 列dg, udg = [True] * (2*n), [ True] * (2*n) # 正对角, 反对角res = [['.']*n for _ in range(n)]def dfs(row): global n if row == n: for i in range(n):原创 2020-11-26 09:53:22 · 449 阅读 · 0 评论 -
二分查找 (二分搜索) 最通俗易懂的图解与实现
二分查找场景二分搜索用于在一个单调或者局部单调有序数组中查找一个符合某些条件的值,时间复杂度为O(logN)二分查找原理图解拿升序数组为例子进行解释,假设我们需要再数组中找到目标值key的下标。1、首先可以将数组按key所在下标划分为三个部分,左边是小于key的部分,然后中间是key值,右边为大于key的部分。用left和right两个指针不断地缩小搜索区域。2、取mid为left和right的中间值,如果mid在key的下标的左边(即nums[mid] <..原创 2020-11-14 19:31:21 · 8840 阅读 · 0 评论 -
Python 归并排序 原理及实现
归并排序 python 实现原理参考:https://zhuanlan.zhihu.com/p/124356219代码实现:n = 5nums = [3, 1, 2, 4, 5]def mergesort(l, r): if l >= r: return # 长度小于等于1,无需排序,返回 mid = l + r >> 1 mergesort(l, mid) mergesort(mid+1, r) tmp = nums[l:r.原创 2020-11-11 11:18:21 · 6697 阅读 · 0 评论 -
算法题 第K个数
题目:(来自https://www.acwing.com/problem/content/788/)给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在1~109109范围内),表示整数数列。输出格式输出一个整数,表示数列的第k小数。数据范围1≤n≤1000001≤n≤100000,1≤k≤n1≤k≤n输入样例:5 32 4 1 5 3输出原创 2020-11-11 09:52:09 · 7480 阅读 · 0 评论 -
快速排序的两种常见写法-python
快速排序1、固定基准法,左固定和右固定nums = [5, 9, 8, 6, 7, 12, 6, 1]def quick_sort_right(l, r): if l >= r: return # 如果当前区间小于等1,无需排序,直接返回 i, j = l, r while i < j: while i < j and nums[i] <= nums[r]: i += 1 while i < j and .原创 2020-11-10 11:25:20 · 6724 阅读 · 0 评论 -
贝壳找房 9月7日 笔试题 第四题-查族谱
贝壳找房第四题代码,时间复杂度o(nlogn)题目:样例:代码:n = 4 # 结点数pairs = [[1,2],[3,4],[3,1]] # 边child = [-1,2,0,1,0] # 孩子数 1-n 多加了个-1为了填充index=0query = [[1,3],[4,1],[2,4]] # 查询对fa = list(range(0,n+1)) # 用来查找当前父亲,与并查集相同, pre[i] = i 初始化graph = [[0]*(n+1) fo.原创 2020-09-07 21:52:08 · 988 阅读 · 0 评论 -
数据挖掘常见面试题(持续更新中)
1、你理解什么是数据挖掘?数据挖掘就是由数据准备,数据挖掘和对结果的解释评估三部分组成。数据准备包括数据选取,数据预处理和数据变化。数据挖掘部分包括确定挖掘的任务或目的,选择挖掘算法。最后将结果可视化或者转化为易于理解的形式。2、为什么会产生过拟合,有哪些方法可以预防或克服过拟合?(常问问题)所谓过拟合(Overfit),是这样一种现象:一个假设在训练数据上能够获得比其他假设更好的...原创 2020-04-29 14:58:18 · 8201 阅读 · 0 评论 -
腾讯2020.4.26数据分析与研发笔试题
https://www.cnblogs.com/xym4869/p/12782711.html原创 2020-12-03 11:11:59 · 1395 阅读 · 0 评论 -
面试算法题(1)
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/kexuanxiu1163/article/details/99024362题目描述给你数字 0 ,1 ,2 ,那么所有排列从小到大就会是 012,021,102,120,201,210,那么如果给你 0,1,2,3,4,5,6,7,...转载 2019-08-15 15:44:19 · 148 阅读 · 0 评论