笔试题
文章平均质量分 56
专为找工作打造
Icevivina
互联网搜索算法
展开
-
面试题 -- 多个有序数组的合并
面试百度的时候遇到的一道题,输入为多个有序数组,输出为合并的一个有序数组。思路:与“两个有序数组合并为一个有序数组”这道题相比,因为输入为多个有序数组(这里设有K个数组),因此每次都需要比较K个数的大小,取出最小的数存入返回的数组中,而对多个数取最小的操作,使用最小堆效率最高,因此这里就是 主要考察的数组结构就是最小堆。因为python的堆结构需要自行设计,网上也没有看到比较好的回答,故自己整理如下。输入:arr, n, m其中arr的大小为[n,m], n为数组的个数,m为每个数组的长度cla原创 2021-06-23 17:16:37 · 1390 阅读 · 0 评论 -
笔试:数据结构之 递归和循环
如果我们需要重复地多次计算相同的问题,则通常可以选择用递归或者循环两种不同的方法。1) 求斐波那契数列的第n项f(n)={0n=01n=1f(n−1)+f(n−2)n>1f(n)=\left\{\begin{matrix}0 &n=0 \\ 1&n=1 \\ f(n-1)+f(n-2)& n>1 \end{matrix}\right.f(n)=⎩...原创 2020-04-26 14:23:35 · 212 阅读 · 0 评论 -
笔试:数据结构之栈和队列
栈的特点是后进先出,即最后被压入栈的元素会第一个被弹出;队列的特点是先进先出,即第一个进入队列的元素将会第一个出来。1)用两个栈实现队列解题:1 用两个栈实现队列通过一个具体的例子来分析往队列插入和删除元素的过程。插入a,b,c,弹出,弹出,插入d,再弹出。得到结论是:先用一个栈stack1插入元素,当需要删除元素的时候:若stack2有数,则直接弹出stack2中的数,如果stack...原创 2020-04-26 12:13:08 · 173 阅读 · 0 评论 -
笔试:数据结构之数组
剑指offer中的数组题目:1)二维数组的查找 (会做)在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。2)数组中重复的数字 (会做)在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。...原创 2020-04-21 20:58:57 · 258 阅读 · 0 评论 -
数据结构视频讲解-第一课
复杂度问题评价一个算法首先看算法的时间复杂度。 二分法搜索的时间复杂度为O(log2Nlog2N\log_2 N),外排法的时间复杂度为O(N+M). 简单的几个排序方法:冒泡排序,选择排序,插入排序。冒泡排序和选择排序的时间复杂度都是严格的O(N2N2N^2),插入排序在最坏情况下时间复杂度为O(N2N2N^2),它与实际的数据状况有关(当数据已经有序时不用执行交换)。递归行为...原创 2020-04-21 20:17:55 · 278 阅读 · 0 评论 -
笔试:数据结构之二分法与排序算法
经典问题1.寻找最大的子数组和 方法1:分治法。将n长数组中的最大数组和分为以下几种情况,在左子序列中,在右子序列中,横跨两个子序列中。 方法2:由[i,i+1,i+2,,,,j]到【i,i+1,i+2,,,,j+1】只有两种可能,第一种是最大数组仍是原始数组,第二种是加上j+1的新数组。#方法1:分治法:def find_max_across_subarray(A,low,mid,...原创 2018-08-16 17:07:51 · 2297 阅读 · 0 评论 -
python中的数据结构整理
python自带的数据结构有:list,tuple,dict,str.加上array模块。list在保存时,同时保存了指针及对象,这样比较消耗内存。而array对象和列表不同,它直接保存数值,但只是一维的。numpy包含的数据结构有:ndarray和matrixndarray是多元数组,可以是1D,2D,3D...,创建形式是numpy.array()matrix是矩阵,必须是二维的,且...原创 2018-01-18 15:30:52 · 285 阅读 · 0 评论 -
笔试:数据结构之链表
链表应该是面试时被提及最频繁的数据结构,链表的结构很简单,它由指针把若干个节点连接成链状结构。 链表的创建、插入节点、删除节点等操作都只需要20行左右的代码就能实现,因此适合面试时提问。 常见的面试题有: 1)从尾到头打印链表; 2)删除链表的节点; 3)删除链表中倒数第k个结点; 4)反转链表; 5)合并两个排序的链表; 6)两个链表的第一个公共结点; 7)判断链表中是否有环;...原创 2018-04-17 20:08:56 · 327 阅读 · 0 评论 -
笔试:数据结构之树
与链表相比,树中的指针操作更多也更复杂,因此与树相关的问题通常会比链表的要难。 当遇到树的问题时,比如遍历,可以使用递归和循环的方式去遍历,但是采用递归的代码会比较简洁,在没有特殊要求的条件下,我们一般采用递归的方式。 Tips: 与二叉树相关的代码有大量的指针操作,在每次使用指针的时候,我们都要问自己这个指针有没有可能是None,如果是None应该怎么处理。 当数值类型为double的时...原创 2018-08-07 22:41:18 · 412 阅读 · 0 评论