本科生保送面试编程题

有幸被邀请做为保送研究生面试的面试官考查过的题目,下述部分都是一些简单题目,可以作为参考。

1. 最小的k个数

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。

输入:arr = [3,2,1], k = 2
输出:[1,2] 或者 [2,1]

2. 最长不含重复字符的子字符串

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1

3. 最长公共子序列

输入:text1 = "abcde", text2 = "ace" 
输出:3  
解释:最长公共子序列是 "ace" ,它的长度为 3 。

输入:text1 = "abcde", text2 = "acf" 
输出:3  
解释:最长公共子序列是 "ac" ,它的长度为 2

4. 三数之和

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]

5.字符串的排列

输入一个字符串,打印出该字符串中字符的所有排列。
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。

输入:s = "abc"
输出:["abc","acb","bac","bca","cab","cba"]

6. 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

输入:s = "We are happy."
输出:"We%20are%20happy."

7. 跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

输入:n = 2
输出:2

8. 跳台阶问题(进阶)

一只青蛙一次可以跳最多 m m m个台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

输入:n = 2
输出:2

9. 链表结点排序

给定一个链表,返回排序后的链表

输入:[2,3,1,5,4]
输出:[1,2,3,4,5]

10. 排序

给定10M的内存,对1TB的数据进行排序,请说明思路和实现过程。

你可能感兴趣的:(算法与数据结构编程题,数据结构,链表,算法)