# 算法 **Repository Path**: gt456/algorithm ## Basic Information - **Project Name**: 算法 - **Description**: 主要保存了算法的描述和实现代码,常见笔试面试题 - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-06-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 算法 ## 介绍 常用算法说明和算法设计,主要准备面试和笔试 ## 常用算法目录 ### 位运算的算法设计题 1. 不使用临时变量交换两个数 2. 计算二进制数中1的个数 3. 讲二进制数倒数第M位的前N位取反 4. 找出人群中唯一的单身狗 5. 找出人群中三个单身狗中的任意一个 ### 字符串算法设计题 1. 不使用库函数,实现strcmp、strcpy、strstr的功能 2. 编程实现字符串中单词的反转 3. 编程实现字符串的循环右移 4. 从字符串指定位置删除指定长度的子串 5. 找出0/1字符串中0和1连续出现的最大次数 6. 编程查找两个字符串中最大的公共子串 7. 字符串中删除特定字符 8. 字符串内容重排 ### 数组算法设计问题 1. 数组中的第i个位置插入元素 2. 编程实现顺序表的逆置 3. 编程实现删除一个数组中的重复元素 4. 数组元素两两之差绝对值的最小值 5. 重新排列数组使得数组左边为奇数,右边为偶数 6. 两个有序数组的交集 7. 判断数组中的元素是否连续 8. 判断数组中是否有重复元素 ### 链表算法设计问题 1. 编程实现有序链表中插入结点 2. 编程销毁一个单链表 3. 编程将两个有序的单链表归并 4. 编程实现单链表的逆置 5. 找出单链表中倒数第k个元素 6. 约瑟夫环问题 7. 如果判断一个链表中有环 ### 队列和栈算法设计问题 1. 编程实现一个二/八进制转换的转换器 2. 判断输入的括号是否匹配 3. 用两个栈实现一个队列 ### 二叉树结构算法设计问题 1. 编程创建一个二叉树 2. 编程实现二叉树的先序、中序和后序遍历 3. 编程实现二叉树按层次遍历 4. 编程计算二叉树的深度 5. 编程计算二叉树的叶子节点的个数 6. 编程计算二叉树中某节点的层数 7. 编程查找二叉树的两个节点的最低公共祖先 ### 排序算法设计问题 1. 直接插入排序 2. 冒泡排序 3. 简单选择排序 4. 希尔排序 5. 快速排序 6. 堆排序 ### 查找算法设计问题 1. 使用折半查找法查找数组中的元素 2. 从有序数组中找出某个数出现的次数 ### 经典算法面试题 1. 斐波那契数列 2. 寻找数组中的次大数 3. 将大于2的偶数分解成两个素数之和 4. 计算一年中的第几天 5. 求两个日期相隔多少天 6. 渔夫捕鱼问题 7. 丢番图的墓志铭 8. 数的分组问题 9. 寻找丑数问题 10. 图中有多少个三角形问题 11. 递归查找数组中的最大值 12. 分解质因数 13. 在大矩阵中寻找K 14. 上楼梯问题 15. 矩阵中的相邻数