映客直播-笔试题

(1) 最后剩下的人

该题算是Leetcode 剑指offer.62原题。 题目难度:简单

题目描述:0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。

例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。

输入: n = 5, m = 3
输出: 3

分析:优先可以想到的是暴力模拟,即循环删除直到列表的长度最后为1。该过程每次都需要进行m次查找位置,并且循环遍历整个列表n次,因此时间复杂度为O(mn)。但是,我们可以这样思考这个问题。对当前列表来说,实际上我们删除的位置是可以计算得到的。问题在于,我们使用无论是pop还是remove方法进行删除后,我们指向列表元素的指针会自动指向下一个元素。但对于整个列表来说,我们每次删除的位置都和题目给定的m有关。容易发现,我们每次删除的位置总是(epoch + m - 1)。值得注意的是,当列表到达尽头后,我们需要回到头进行查找。因此使用该数对len(people)进行求余运算即可。

class Solution:def lastRemaining(self, n: int, m: int) -> int:epoch, people = 0, list(range(n))while len(people) > 1:epoch = (epoch + m - 1) % len(people)people.pop(epoch)return people[0]

笔试中遇到的实际情况是,列表的元素是从1取的,并且m固定为3。

(2) 能否跳跃到最后一个节点

该题同样是Leetcode原题,坐标:Leetcode.55 跳跃游戏 题目难度:中等

题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个位置。

输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。

分析:若我们直接考虑暴力解法,会发现在解决这个问题过程中,我们需要不断考虑当前跳多少格子合适。并且还会陷入这样跳有几种跳法的怪圈。然而题目只要求我们返回bool变量。对于类似给定数组最后输出bool值的情况,其实可以优先考虑贪心算法,若贪心算法搞不定,可以尝试使用动态规划。该题就是典型的可以使用贪心算法解决的题目。我们不妨使用例子中的数组作为示例。容易发现,当我们从第一个点开始起跳,其实只要我们每次都选择最大的值进行跳跃,并且保证在最后到达的位置,我们得到的最终节点的位置大于等于数组长度即可。更简单一点说,我们只要保证我们当前的位置能够达到,并且当前位置加上当前的最大跳数值大于最远跳数,就代表当前路径是可达的。

class Solution:def canJump(self, nums) :max_i = 0       #初始化当前能到达最远的位置for i, jump in enumerate(nums):   #i为当前位置,jump是当前位置的跳数if max_i>=i and i+jump>max_i:  #如果当前位置能到达,并且当前位置+跳数>最远位置  max_i = i+jump  #更新最远能到达位置return max_i>=i

(3) 将链表中奇偶位置的节点聚集在一起

Leetcode.328原题。 题目难度:中等

题目描述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。

输入: 1->2->3->4->5->NULL
输出: 1->3->5->2->4->NULL

分析:模拟过程,并在链表节点内部进行节点的交换。需要注意的是,我们需要额外的指针指向上个被排序的节点的位置,保证下一个节点能够符合原链表数据情况。

class Solution:def oddEvenList(self, head: ListNode) -> ListNode:if not head:return headevenHead = head.nextodd, even = head, evenHeadwhile even and even.next:odd.next = even.nextodd = odd.nexteven.next = odd.nexteven = even.nextodd.next = evenHeadreturn head

(4) 合并两个有序数组

题目描述:给定两个有序的数组,将他们合并成一个新的数组,并且新的数组有序。

分析:这个题目吧,要是换成链表,还可以写写。不换成链表的话,还对时间复杂度要求贼低,直接使用sort就行了。

class Soulution:def newList(self, nums1, nums2):return sort(nums1 + nums2)

2020-11-22 映ke笔试题相关推荐

  1. 2020万得技术校招笔试题(软件开发)

    2020万得技术校招笔试题(软件开发) 不定项选择题(共5题,时间5分钟) 1. 在浏览器中输入https://www.wind.com.cn, 其中https代表____ A. 地址 B. 资源 C ...

  2. 2021.4.11 字节跳动实习笔试题---情报解密

    2021.4.11 字节跳动实习笔试题-情报解密 题目内容 题目内容: 给你一个字符串,该字符串中有数字,字母(字母只有大写字母)以及一些其他的字符(例如:%,.等),如果首字母为字母或者数字的话,就 ...

  3. 2020大疆秋招笔试题B卷

    2020大疆秋招笔试题B卷 选择题(选项没抄下来)10道记了9道 1.关于常指针和指向常量的指针 2.多线程调用如下函数,a,b,c哪些需要加锁保护 int a = 0; void knit() {s ...

  4. Jenkins持续集成学习笔记(2020.11.22)

    Jenkins持续集成学习笔记(2020.11.22) 前言: (官网) 以前很久学习过Jenkins持续集成进行快速部署项目进行测试, 最近换工作了, 发现新公司有用到, 现在来复习一下 官网介绍: ...

  5. 阿里2020春招Java实习生笔试题

    阿里2020春招Java实习生笔试题 第1题 第2题 今天上午参加了阿里实习笔试,2个编程题(60分钟),做的简直是惨不忍睹,一个都没出来.虽然和面试无缘了,但希望能帮到后面笔试的同学,所以将题目大概 ...

  6. 拼多多2020学霸批数据分析师笔试题 (2019.7.28)

    真真正正20届秋招,第一场笔试献给了「拼多多」. 套题 20届学霸批数据分析师笔试题 题型简单粗暴 5道问答题:3 * SQL + 1 * 概率计算 + 1 * 业务分析题 完成时间 90分钟 会写的 ...

  7. 「2020」拼多多数据分析笔试题 | 附解答

    19届同学反馈,pdd的数据分析SQL部分出的很好,20届感叹道,说的太对了. pdd的笔试题一共五道,考试时只划分为一个部分,答题时间90分钟. 第一部分:SQL查询题3道 第一题:活动运营数据分析 ...

  8. 美团点评2020校招系统开发方向笔试题(编程题题解)

    这套笔试题的编程题很简单,感觉没什么可以写的题解的 [编程题]大数加法 注意下负号的情况 #include <bits/stdc++.h> using namespace std; typ ...

  9. 【前端面试】Part 1:2020届初级前端校招笔试题及面经总结 —— 基础知识题

    个人总结 很高兴今天收到了开奖电话,拿到本科SP成功结束了秋招! 一轮轮的笔面试是对自己查缺补漏.学习成长的过程. 反思自己对前端的学习过程:2017年10月加入Smartlab411,起步阶段看书比 ...

最新文章

  1. 深入Java泛型(五):Json解析泛型
  2. java读取文件跳过_在Java中读取文本文件-为什么跳过行?
  3. Akka的字数统计MapReduce
  4. 本人计划继续写飞鸽传书,支持的人有吗?
  5. Coolite Toolkit学习笔记三:基本控件之Button、TextField、DataField、ComboBox
  6. 安装cdr2019卡在正在下载_cdr2019最新版下载-coreldraw2019安装包中文版 - 极光下载站...
  7. 水仙花数,用scratch编程实现
  8. e320/t420/w520等 qm67/hm65/hm67等 6系芯片组更新BIOS以安装三代酷睿cpu提升性能的想法
  9. mysql.bat启动关闭脚本
  10. bochs运行xp_在bochs虚拟机中安装WindowsXP (学习)
  11. 数据库中update的用法
  12. Unity3D鼠标控制摄像机“左右移动控制视角+WASD键盘控制前后左右+空格键抬升高度”脚本
  13. 上海私车牌价狂降3万余元!!!
  14. 关于虚拟主机那点事儿
  15. python关于模块说法错误的是_python常用模块错题
  16. “黑洞事件”持续发酵,视频版权保护又有哪些门道?
  17. python两个自定义函数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...
  18. 重磅!详解阿里研究院互联网+报告
  19. 如何使用arcmap转换shp文件坐标系
  20. 顶级图片管理加工软件Picasa免费中文版

热门文章

  1. 我国的高等教育到底缺失什么?
  2. 尤金·卡巴斯基:网络安全已陷“黑暗时代”,我们该如何应对?
  3. 永别了!我可爱的小小灰。。。
  4. 阿里云与瑞云合作搭建视觉云渲染平台,互联网开始介入影视制作
  5. 创业合伙人时代,股权激励正解
  6. 苹果手机来电防火墙_苹果手机怎么来电录音电话通话
  7. 图片大小自适应、pc端、手机端
  8. c语言编程打印如下k字形图案原因成谜,成都现神秘“犇”字形图案 原因成谜
  9. 禁止QQ直播、p2p软件的方法
  10. 操作无法完成。键入的打印机名不正确,或者指定的打印机没有连接到服务器上...