首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python 最常见 120 道面试题解析

什么是 python 内置类型? NumPy 阵列在(嵌套)Python 列表中提供了哪些优势? 如何将值添加到 python 数组? 如何删除 python 数组值?...即使文件太大而无法放入内存,你代码也应该可以正常工作。 在 Python 中数值数据集编写排序算法。 查看下面的代码,记下 A0,A1,...最终值。...检查给定数字n是否2或0幂 计算将A转换为B所需位数 在重复元素数组中查找两个非重复元素 找到具有相同设置位数下一个较大和下一个较小数字 95.给定n个项目的重量和值,将这些物品放入容量W背包中...给定一根长度n英寸杆和一系列价格,其中包含所有尺寸小于n尺寸价格。...最短路径算法 在给定边缘加权有向图中找出每对顶点之间最短距离 图形实现 Kruskal最小生成树算法 拓扑排序

6.3K20

Python数据结构与算法笔记(4)

负载因子,lambda=项数/表大小,下面这个例子中,6/11 ? 现在,要搜索一个项时,我们只需使用哈希函数来计算项槽名称,然后检查哈希表以查看它是否存在。...目标是创建一个散列函数,最大限度地减少冲突数,易于计算,并均匀分布在哈希表中项。 分组求和法将项划分为相等大小(最后一可能不是相等大小)。...in返回True对于key in map语句,如果给定键在map中,否则为False 字典一个很大好处是,给定一个键,我们可以非常快速地查找相关值。...希尔排序 希尔排序,有时也称为递减递增排序,通过将原始列表分解多个较小列表来改进插入排序,每个子列表使用插入排序进行排序。选择这些子列表方式是希尔排序关键。...归并排序 使用分而治之策略作为提高排序算法性能一种方法。归并排序是一种递归算法,不断将列表拆分为一般。如果列表空或有一个项,则按定义进行排序

1.6K10

刷题-给定两个大小 m 和 n 有序数组 nums1 和 nums2。 请你找出这两个有序数组中位数

题目:给定两个大小 m 和 n 数组 nums1 和 nums2。 请你找出这两个有序数组中位数 方法:很简单办法就是利用list函数来实现。...如果没有别的要求下,这么实现是最简单方式,也是最快方式,对list合并排序掌握十分合理。...,我感觉上面的解法,存在bug,就是如果最后剩下数,本来就没有前面的数据大,中间没有了排序,所以,这个方法显然是不可以用,需要对这个方法进行优化,怎么来优化呢。...最简单 就是对temp组合后进行排序, class Solution: def findMedianSortedArrays(self, nums1: list, nums2: list)...这样时间复杂度可能就上去了。但是慢慢去优化我们代码,达到最佳,最简单就是要消除可能存在bug,再去想接下来时间优化,当然了,肯定还有比这个最优解法,这里知识一个抛砖引玉

82610

【自考】数据结构第六章查找,期末不挂科指南,第10篇

基于上述内容引入一个新概念,叫做“查找成功时平均查找长度(记作ASL)” 它定义是这样找到数据元素在查找表中位置,与给定值进行比较键值个数期望值。...有序表上查找 如果顺序表中数据元素是按照键值大小顺序排列,则称为有序表。...索引表通过索引将顺序表分割若干,而顺序表呈现出“按有序”形式 若静态查找表用索引顺序表表示,则查找操作可用分块查找来实现,也称为 索引顺序查找。...常用散列法 构造散列函数方法,了解一下 数字分析法 除留余数法 平方取中法 基数转换法 散列表实现(自考必考,不是考代码,是考方法) 线性探测法 直接用例题与动画来解释吧 题目要求 设散列表长度...11,散列函数H(key) = key mod 11(mod求余运算),给定健值序列为(3,12,13,27,34,22,38,25),试画出采用线性探测法解决冲突时所构造列表,并求出在等概率情况下查找成功时平均查找长度

60320

Java实现请根据每日 气温 列表,重新生成一个列表。对应位置输出:要想观测到更高气温,至少需要等待天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temp

请根据每日 气温 列表,重新生成一个列表。对应位置输出:要想观测到更高气温,至少需要等待天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。...例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。...提示:气温 列表长度范围是 [1, 30000]。每个气温均为华氏度,都是在 [30, 100] 范围内整数。...思路: 1 开辟一个数组来存储天数 2 开辟一个双端队列 3 第一个元素下标进栈,然后 比较后来T[进栈坐标] 和T[栈顶坐标]大小,如果比T栈顶大, 那么更新天数数组, 记录天数之差 ,同时移除栈顶元素...(pop()) (总之小于T[进栈]就 移除, 大于T[进栈]的话就压入T[进栈]) class Solution { public int[] dailyTemperatures(

81520

Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)

但是在数据量较多时,因其算法思想是朴素、穷举,算法中没有太多优化设计,性能会很低下。 线性查找思想: 从头至尾逐一扫描原始列表每一个数据,并和给定关键字进行比较。 如果比较相等,则查找成功。...当对长度1000数列进行二分查找时,所需次数最多只要 10 次,二分查找算法效率显然是高效。 但是,二分查找需要对数列提前排序,前面的时间复杂度是没有考虑排序时间。...索引表至少应该有 2 个字段,每一最大值数字以及每一起始地址。显然索引表中数字是有序。 第 3 步:查找给定关键字时,先查找索引表,查询关键字应该在那个中。...''' 分块:建立索引表 参数: nums 原始数列 blocks 大小 ''' def create_index_table(nums, blocks): # 索引表使用列表保存...以上代码仅对整体趋势有序数列进行分块。如果整体不是趋向有序,则需要提供相应排序方案,有兴趣者自行完成。 简单思路:可以对每一求平均值,先按平均值大小调整,然后再进行内部微调整。

35720

70个NumPy练习:在Python下一举搞定机器学习矩阵运算

翻译 | 王柯凝 责编 | suisui 【导读】Numpy是一个开源Python科学计算库,专用于存储和处理大型矩阵,相比Python自身嵌套列表结构要高效很多,是数据分析、统计机器学习必备工具...答案: 47.如何将所有大于给定值替换为给定cutoff值? 难度:2 问题:从数组a中,替换大于30包括30且小于10到10所有值。...输入: 输出: 答案: 54.如何使用numpy排列数组中元素? 难度:2 问题:给定数字数组a排序。 输入: 输出: 答案: 55.如何使用numpy对多维数组中元素进行排序?...难度:3 问题:计算给定一维数组窗口大小3移动平均值。 输入: 答案: 68.如何只给出起点,长度和步长来创建一个numpy数组序列?...难度:4 问题:从给定一维数组arr,使用步长生成一个二维数组,窗口长度4,步长2,如[[0,1,2,3],[2,3,4,5],[4,5,6,7]..]

20.6K42

软考之路(七)——数据结构与算法(5)之查找

1、顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败。再简单点就是,一个一个大小,看看是否相等。 例子: ?...注意:折半查找需要注意给定序列必须是一个有序序列。 例子: ? 3、分块查找 基本原理:顺序查找和二分法查找折中,先分块,在中顺序查找。...注意:分成内部数据可能无序;各之间有序(第二个元素都比第一个中元素都大);建立了索引表,索引表按关键字有序。 例子: ? 静态查找表方法性能分析 ?...注意:从定义我们可得到:想要一颗树平衡,有三种情况,节点平衡度要么为了0,要么1,要么-1。(平衡度:节点左子树高度减去其右子树高度。) 例子: ?...总结 数据结构和算法内容到今天(5月16日)就算结束了(祝旅行愉快),由于距离考试很近了,我们后面的博文就开始介绍软考大题部分内容,近期就会推出,敬请期待。 后续博客更新列表,敬请期待。

39910

分而治之与快速排序

给定一个数组{2, 4, 6},计算该数组和,使用循环很容易实现,那如果使用递归函数如何实现呢?...快速排序 在了解了分而治之思想后,如何将其用到排序问题上呢?对于排序算法来说,最简单情况是什么呢?...那就是不用对其进行排序,其对应基线应该如下: 快速排序基线(不需要排序数组): { }------元素个数0,空数组排序结果就是它本身; {a}------元素个数1,只包含一个元素数组,组排序结果也是它本身...; 接下来关键问题是如何将数组分解成次复杂数组,快速排序就是通过基准值 (pivot)将原数组分解成两个次复杂数组,基准值往往选取数组中间值。...分割方法如下: 快速排序将大于等于基准值(这里是2)元素放在一组成数组B,小于基准值放在一组成数组A,数组A放在基准值2左边,数组B放在基准值2右边,到目前为止,基准2已经处于最终排序结果位置了

30210

对于初学者来说,有哪些好 Python 示例?

在本文中,我们将在本文中初学者学习一些有用基本Python示例。本文还包括在python面试中提出一些基本问题。让我们开始吧!!! 如何从列表中创建元组?...NumPy数组比Python列表更通用。NumPy 数组使读取和写入对象更快、更高效。 在 Python 中,你可以用什么方法制作一个给定形状空 NumPy 数组和 Numpy 数组?...自2.4版本以来,它一直是Python一部分。集合是不以任何特定方式排序不同且不可变项集合。 如何打印从 1 到 100 所有数字总和?...数字 - Python 最常见内置数据结构是整数、复数和浮点数。 例 5, 2+3i, 3.5. 列表 − 列表是按特定顺序排序对象集合。列表组成部分可以是多种数据类型。...continue - 当满足指定条件时,将控制发送到循环开头,从而允许跳过循环当前执行某些部分。 如何将字符串中每个字符转换为小写字母? 要将字符串转换为小写,请使用 lower() 函数。

2K40

Pandas用6不6,来试试这道题就能看出来

题目描述:给定一组用户多次行为起止时间表,由于相邻行为之间可能存在交叉(即后一行开始时间可能早于前一行结束时间),所以需根据用户ID对其相应起止时间信息进行合并处理。...完成以上这一小需求,实际上可拆解两个小问题: 给定同一用户多组行为起始时间,根据起止时间大小完成区间合并问题。实际上,这是LeetCode一道原题 ?...其中函数功能正常执行前提是starts已按照从小到大顺序完成排序,当然这一细节在pandas中很容易实现。...可以肯定是,为了实现按用户分组进行区间合并,那么肯定要groupby('uid'),而后对每个grouper执行range_combine,得到各用户及其合并后所有区间嵌套列表,进而问题转化为如何将这个嵌套列表再拆分为多行...这就涉及到Pandas中一个有用API——explode,即将一个序列分裂成多行,从如下explode函数说明文档中可以看出,它接收一个或多个列名作为参数(即要拆分列),当该列取值是一个列表元素时

1.6K10

数据结构和算法之链表 | 链表介绍(难度级别:简单)

与数组不同,链表元素不存储在连续位置;元素使用指针链接。 为什么使用链表? 数组可用于存储类似类型线性数据,但数组有以下限制。 1)数组大小是固定:所以我们必须提前知道元素数量上限。...例如,在一个系统中,如果我们在数组 id[] 中维护一个已排序 ID 列表。 id[] = [1000, 1010, 1050, 2000, 2040]。...而如果我们要插入一个新ID 1005,那么为了保持排序顺序,我们必须将1000之后所有元素(不包括1000)移动。 除非使用某些特殊技术,否则删除数组代价也很高。...由于数组元素是连续位置,因此存在引用局部性,而在链表情况下则不存在。 表示: 链表由指向链表第一个节点指针表示。第一个节点称为头部。如果链表空,则头部NULL。...对于遍历,让我们编写一个通用函数 printList() 来打印任何给定列表

51221

如何对1千万个整数进行快速排序

前言 输入:一个最多包含n个正整数文件,每个数都小于n,其中n=10^7。如果在输入文件中有任何正数重复出现就是致命错误。没有其他数据与该正数相关联。 输出:按升序排列输入整数列表。...以次类推,在进行了多次排序之后就完成了对所有数据排序,并输出到文件中。 另外一种思路是,既然有充足磁盘存储空间可用,那么我们可以借助中间文件。...至此,我们可以梳理出算法大体流程: 1.对给定大小数组所有比特位置0 2.循环读取输入文件数据,并将对应数值大小比特位置1 3.遍历数组各比特位,如果位1,则输出对应比特位位置整数 C语言实现...那么我们只需要将第10字节第1个比特位置1即可。 如何将第n个比特位置1?先将1左移n位(n小于8),得到一个值,再将这个值与该字节进行相或即可。...思考 给定一个最多包含40亿个随机排列32位整数文件,如何快速判断给出一个数是否在其中?

2.2K20

Python实现十大经典排序算法

nums # 由于每次大都会放到后面,因此最后 nums 是从小到大排列 计数排序(Counting Sort) 计数排序须知: 计数排序要求输入数据范围在 [0,N-1] 之间,则可以开辟一个大小...例如对一副牌整理,可将每张牌看作一个记录,包含两个关键字:花色、面值。一般我们可以将一个有序列是先按花色划分为四大,每一中又再按面值大小排序。...首先,按可用内存大小,将外存上含 N 个记录文件分成若干长度 L(<N) 子文件,依次读入内存,利用内部排序算法进行排序。...可见外部排序基本方法是归并排序法,下面的例子给出了一个简单外部排序解决过程。 【例子】给定磁盘上有6大记录需要排序,而计算机内存最多只能对3个记录进行内排序,则外部排序过程如下图所示。...归并步骤: 当任一输入空时,归并暂停,将相应归并段中信息写入内存 将内存中2个输入记录逐一归并入输出 当输出写满时,归并暂停,将输出记录写入周转盘 如此可将2个归并段在周转盘上归并成一个有序归并段

7K111
领券