zoukankan      html  css  js  c++  java
  • 包建强的培训课程(5):算法与数据结构

                                                                   算法与数据结构

    一、     简介

    本课程是基于数据结构来设计的,搜罗了各大公司面试过程中经常被问到的300多个算法题目,从中遴选出70道经典题目,分为单链表、数组、二叉树、栈、数字、逻辑推理等多个类别。

     

    本课程将培训学员的逻辑思维能力,学以致用,在实战中编写出性能更好、逻辑更严谨的程序。

     

    本课程适用于1-2年开发经验的程序员,对设计模式和算法有一些了解。

     

    二、     培训大纲(2-4天)

     

    1 上午 单链表

    l   单链表的定义

    l   单链表反转

    l   倒数第四个元素

    l   中间元素

    l   删除无头单链表的一个节点

    l   合并两个不交叉的有序链表

    l   交换单链表中的任意两个元素

    l   判断单链表是否有环

    l   判断两个单链表是否相交,是则给出交点

    l   用链表模拟大整数的加法运算

    l   单链表排序

    l   删除单链表中重复的元素

     

    1 下午 栈和队列

    l   栈和队列的定义

    l   设计含有min函数的栈,要去算法复杂度为o(1)

    l   用两个栈实现队列

    l   用两个队列实现栈

    l   判断栈的pushpop序列是否一致

    l   递归反转一个栈,要求空间复杂度o(1)

    l   如何用一个数组实现两个栈

    l   如何用一个数组实现三个栈

     

    2 上午 二叉树

    l   二叉树的定义

    l   三种周游方式

    l   从顶部逐层打印二叉树的节点数据

    l   如果判断一棵树是否为平衡二叉树

    l   找出二叉树上任意两个节点的最近共同父结点

    l   如何不用递归实现二叉树的前序/后序/中序遍历?

    l   在二叉树中找出和为某一值的所有路径

    l   把一个有序整数数组放到二叉树中?

    l   判断整数序列是不是二叉搜索树的后序遍历结果

    l   求二叉树的镜像

    l   把二叉搜索树转变成排序的双向链表

     

    2 下午 数组

    l   查找数组中的唯一的重复元素(2

    l   删除数组中的唯一的重复元素(14

    l   删除有序数组中的重复元素,空间复杂度O(26)

    l   11000存放在1001个元素的数组中,如何找出其中的一个重复数字(6

    l   找出数组中只出现了奇数次的1个数字,其它元素都成对出现(7

    l   查找数组的最大最小值(3

    l   长度为n的数组,存放了0n范围内的整数,如何判断其中是否有重复元素,要求空间复杂度0(1)8

    l   数组的循环右移(13

    l   “最大和”连续子序列(20

    l   调整数组顺序使奇数位于偶数前面(28

    l   判断有序数组中是否存在两个唯一的元素(45

     

    3 上午 数字

    l   按位反转数字(1234=4321

    l   求从1加到n

    l   用加法实现减法

    l   把字符串转换成蒸熟

    l   Fibnacci数列的3种算法

    l   整数分割

    l   大数的模计算

    l   Excel的数字转字母

    l   根据(15)随机数生成器,生成(17)随机数

    l   计算质数、完全数、水仙花数、快乐数、回文数

    l   删除100位数字后的最大数

    l   找出2n个数字中重复n次出现的数字

     

    3 下午 杂题

    l   扑克牌洗牌算法

    l   判断一个点是否在三角形内

    l   IntStr函数的实现

    l   写一个检查字符串是否是整数的函数,如果是则返回这个整数。

    l   递归反转一个栈

    l   栈的排序

    l   八皇后问题

    l   8x8的棋盘一共有多少长方形和正方形

    l  

     

    4 上午 逻辑推理

    l   给你一个打乱的魔法,如何在第二天把它调整好

    l   一根金条付薪水

    l   寻找四个药丸罐子中某个被污染的药丸罐

    l   大象背香蕉问题

    l   谷歌赛马

    l   九个点画十条直线,每条直线至少有三个交点

    l   烧绳子算时间

    l   高楼扔鸡蛋

    l   海盗分金子

    l   7克、2克砝码各一个,天平一只,如何只用天平称三次将140克的盐分成5090克各一份

     

     

     

  • 相关阅读:
    Docker 入门指南——Dockerfile 指令
    这个断点可以帮你检查布局约束
    个推你应该这样用的
    网易云直播SDK使用总结
    当微信和支付宝遇上友盟
    环信SDK 头像、昵称、表情自定义和群聊设置的实现 二(附源码)
    环信SDK 头像、昵称、表情自定义和群聊设置的实现 一(附源码)
    事件分发机制
    常用开发技巧系列(一)
    iOS RunTime你知道了总得用一下
  • 原文地址:https://www.cnblogs.com/Jax/p/5928409.html
Copyright © 2011-2022 走看看