`
384444165
  • 浏览: 255074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

2013.5.24 某公司实习面试题

阅读更多

    昨天进行了实习生面试,长期的。本来报的图像识别,但是确实是不懂行,果然被调剂了。自动化测试组,不过做大数据分析和呈现,不是ML相关岗位,但应该有些问题是可以用ML来更好解决的,直觉这样认为。不说废话了,面试也是手写各种算法为主,应该是题库中的,准备的太少果然吃亏,当天出结果。给出记得的题目吧,还有解答。有的当时并没有答出最优解,下来好好想想还是值得的。

方便分开就都放到代码形式里面了。

 

1. 走台阶,一步只能走1或2个台阶,问n个台阶有多少种走法。
       当时我用二分的思路进行的,话说这条路走下来很复杂,虽然小数据是对的,但是数据一大就很复杂了。这个题是没答对的,不过下来想想从二分合并的思路深入想一下就可以发现这是动态规划问题,从1阶梯到n阶梯算一遍就ok了。   solve(n) = sovle(n-1) + sovle(n-2) n>2
       搜了下网上还有些其他解法,只看了两个,递归是肯定比动态规划差的,重复计算过多。另一个没仔细看。但目测是动态规划最优。

 

2. 输入一个String,和一个char,char表示键盘上的回退键,输入实际的输出。
其实就是获取键盘流后显示到显示屏上的问题。处理起来很简单,借用一个Stack,遇到此char pop一下,遇到的不是此char则push一个。Java的Stack也是Vector,所以输出也很容易,同时pop也不需要考虑栈空的情况。

 

3. 实现一个栈,获得最大值的时间复杂度是1
思路就是每次这个栈增加、删除一个元素都会改变最大值,另外根据只有pop、push操作,即只能操作栈顶节点考虑,实现另一个栈,记录每个栈顶元素对应的最大值。这里最大值记录编号int较省内存,如果存内容的话可能花费较大。

 

4. 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
关键是找对角线上的元素,找到最后一个小于x的,和第一个大于x的,把矩阵拆成四块,只保留左下和右上角部分,对这两部分继续操作,变成二分问题。

另外慢慢想想有个最好的解法,就是每个节点其实都有两个指示信息,但是需要选择往左-下,或者右-上的方向移动,对于任意一个位置,其左边小于它,下面大于它,相当于就有了一个决策方式。这样从右上角的元素开始,做此决策,比如找x,如果此元素大于x,则继续向下找;如果此元素小于x,则向左找,直到不能走了。这样就找到了,时间复杂度是O(n)

 

  • 大小: 11.6 KB
分享到:
评论

相关推荐

    Java swing + socket + mysql 五子棋网络对战游戏FiveChess.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    纯C语言实现的控制台有禁手五子棋(带AI)Five-to-five-Renju.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    setuptools-57.1.0.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-59.1.1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    空载损耗计算软件.zip

    空载损耗计算软件

    贪吃蛇.cpp

    贪吃蛇.cpp

    Gobang Game programmed by C(五子棋游戏)Gobang.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    单片机C语言Proteus仿真实例用DS1302与数码管设计的可调电子表

    单片机C语言Proteus仿真实例用DS1302与数码管设计的可调电子表提取方式是百度网盘分享地址

    二叉树的遍历hahahha

    二叉树的遍历hahahha

    setuptools-3.8.1.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于linux开发C语言编程五子棋小游戏inset.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    Linux下,C语言实现五子棋程序Linux-Wuziqi.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    飞机大战pygame_demo.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    K210SD卡掉电存储的人脸识别

    K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210

    setuptools-47.3.2.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    复制粘贴功能,简单实用

    复制粘贴功能,简单实用,非常好用

    绝缘子缺陷数据集,输电线路巡检

    绝缘子缺陷数据集,总共四类,分别为绝缘子,绝缘子破损,绝缘子闪络,防震锤,总共1688张图片

    Python源码-泰坦尼克之灾.py

    Python源码-泰坦尼克之灾

    setuptools-46.1.2.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    2023-04-06-项目笔记 - 第一百三十一阶段 - 4.4.2.129全局变量的作用域-129 -2024.05.12

    2023-04-06-项目笔记-第一百三十一阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.129全局变量的作用域_129 - 2024-05-12

Global site tag (gtag.js) - Google Analytics