基础算法 - 分类

2022-03-16  本文已影响0人  外腾湖南

数组问题

1、在一个给定的从1到100的整型数组中,如何快速找到缺失的数字?

2、如何找到一个给定的整型数组中的重复数字?

3、在一个未排序的整型数组中,如何找到最大和最小的数字?

4、在一个整型数组中,如何找到一个所有成对的数字,满足它们的和等于一个给定的数字?思路:除以2,看看是否等于这个一半的值,DP

5、如果一个数组包含多个重复元素,如何找到这些重复的数字?

6、用 Java 实现从一个给定数组中删除重复元素?

7、如何利用快速排序对一个整型数组进行排序?quick sort 而不是bubble sort

8、如何从一个数组中删除重复元素?

9、用 Java 实现数组反转?

10、如何不借助库实现从数组中删除重复元素?

字符串相关问题

字符串仅仅是一个字符数组

1、如何输出字符串中的重复字符?前后指针,如果重复了则打印出来;

2、如何判断两个字符串是否互为回文?是否为旋转;

3、如何从字符串中输出第一个不重复字符?也有思路

4、如何使用递归实现字符串反转?  我们只用双指针实现了字符串反转

5、如何检查字符仅包含数字字符?  replaceAll ?

6、如何在字符串中找到重复字符?

7、如何对给定字符串中的元音及辅音进行计数?

8、如何计算给定字符传中特定字符出现的次数?HashMap, getOrDefault();

9、如何找到一个字符串的全排列?回溯一下

10、在不使用任何库方法的情况下如何反转给定语句中的单词?  reverse一个单词

11、如何判断两个字符串是否互为旋转?  相加,然后再判断是否包含;

12、如何判断给定字符串是否是回文?前后指针

链表问题

1、在一次遍历中,怎样发现单个链表的中间元素? 快慢指针

2、怎样验证给定的链表是环形的? 怎样发现这个环的起始节点? 这个有特定算法

3、怎样翻转链表? reverse linkedlist, 这个容易但要使用递归

4、不使用递归,怎样反转单个链表? for loop就可以,然后不断往前滚进

5、在未排序链表中,怎样移除重复的节点?  难道用HashMap去记录重复的节点

6、怎样找出单个链表的长度?  遍历一遍吗?

7、从单个链表的结尾处,怎样找出链表的第三个节点?  快慢指针

8、怎样使用栈计算两个链表的和?  压到栈里面?

二叉树问题

什么是二叉树的大小或深度,什么是叶节点,什么是节点,以及对流行的遍历算法的理解,例如前序、后序和中序遍历

1、二叉搜索树是如何实现的?Binary search tree

2、如何在给定二叉树上实现前序遍历?前根遍历,先遍历根再遍历左再右

3、不使用递归如何按照前序遍历给定二叉树?不使用递归那就得使用循环

4、如何在给定二叉树上实现中序遍历?  中根遍历,先左再中再右

5、不使用递归情况下如何使用中序遍历输出给定二叉树所有节点?  那就得靠循环

6、如何实现后序遍历算法?  后根遍历,就是根在最后遍历

7、如何不使用递归实现二叉树的后续遍历?

8、如何输出二叉搜索树的所有叶节点?关键字:二叉搜索树

9、如何在给定二叉树中计算叶节点数目?

10、如何在给定数组中执行二分搜索?找到target

编程面试问题之杂项

提前练习它们不仅能让你熟悉它们,而且还让你更自信地向面试官解释其解决方案

1、冒泡排序是如何实现的?   i>i+1 就必须把其对调一下

2、迭代式快排算法是如何实现的? 递归式快排

3、你如何实现插入排序算法?

4、合并排序算法是如何实现的?

5、桶排序算法是如何实现的?

6、计数排序算法是如何实现的?

7、基数排序算法是如何实现的?

8、在不使用第三个变量的前提下如何交换两个数?b=a+b, a=b-a(a+b-a==b 这样就调换了), b=b-a(a+b-a==a+b-b==a 因为这时a==b)

9、如何检查两个矩形是否重叠?

10、如何设计一个自动售货机?

上一篇下一篇

猜你喜欢

热点阅读