微软100题算法解答
来源:互联网 发布:淘宝主视频制作软件 编辑:程序博客网 时间:2024/05/04 08:06
本文是旨在实践”用关键变量、循环把握算法”的思路。用以变量为中心的方法把握算法,取而代之空间想象推演的方法
1.把二元查找树转变成排序的双向链表
变量:全局变量head, end
算法框架: 中序遍历。
变量算法:1) head变量:如果head为null, head指向当前结点,只执行一次。
2) end 变量: 如果end为null, end 指向当前节点;否则end->right 指向当前结点,当前结点的left指向end。end 赋值当前结点2.设计包含min函数的栈
变量:内置一个一般stack1, 正常存取数据。另设一个stack2,栈顶保存stack1当前状态对应的最小值。push算法:stack2为空,stack2 push当前值;否则比较stack2.peek()和当前值,如果当前值小于stack2.peek(),stack2 push当前值。
pop算法:pop出的值和stack2栈顶比较,如果不等于stack2栈顶的值,stack2不做操作。如果等于stack2栈顶的值,stack2也pop
min算法:返回stack2.peek()
4.在二元树中找出和为某一值的所有路径(树)
变量:参数root, sum。另设一个全局变量path vector保存从根节点到当前结点的路径
算法框架:前序遍历。
访问结点算法:path append当前结点,sum 减去当前结点的值。如果sum 为0,打印path
当前树处理完后,path remove当前结点
5.查找最小的k个元素
变量:参数:数组a, 数组大小n, k
算法框架:前k个数构建大小为k的最大堆,后面的数依次和堆顶比较,如小于堆顶则替换堆顶并fixdown
1) heapfy(a,k) 2)i= k, n-1, 比较,fixdown(a,0,k)
6 判断整数序列是不是二元查找树的后序遍历结果
变量 :参数a[], n;局部变量: 循环变量i,
边界情况:n<=1 返回true
1)i从0到n-2扫描a[], 当a[i]大于等于根a[n-1] 停止; 此时i停留在右子树的第一个结点上
2)verify 右子树值均大于等于a[n-1],否则返回false
3)对左右子树递归调用本算法。注意a,和n的新取值。
7翻转一个句子
变量:参数char* a; 局部变量 :char* p 字符指针,wordStart 指针保存当前word的起始,prev表示上一个字符初始化为NULL
算法:1) 用指针p遍历字符,如果当前字符非空格而下一字符是空格或者结束符,说明是word的最后一个字符,从wordStart到p之间reverse。如果当前字符非空格,prev是 空格,更新wordStart=p。
2)reverse整个字符串。
8 二叉树结点最大距离
maxLen(树)= max( maxLen(左子树),maxLen(右子树),depth(左子树)+ depth(右子树))
- 微软100题算法解答
- 微软等公司数据结构+算法面试100题、分析、考点、解答(第1~100题)
- 解答微软的一道逻辑推理题
- 微软面试100题系列:一道合并链表问题的解答[第42题]
- 微软、谷歌、百度等公司经典面试100题[第1-60题]及解答
- July的微软面试100题系列尝试解答(1~5题)
- 评微软数据结构+算法面试100题
- 微软数据结构与算法100题1
- 微软100道算法题之001
- 微软100道算法题之002
- 微软等数据结构+算法面试100题
- 微软数据结构+算法面试100题
- 微软等数据结构+算法面试 100 题
- ---评微软数据结构+算法面试100题
- 微软100题(97)洗牌算法
- 微软算法100道题-----第六题
- 微软算法100道题-----特殊题
- 微软等数据结构+算法面试100题
- 随机数是骗人的
- Programming Methodology in Java 笔记
- 解决ADT大量出现"Unexpected value from nativeGetEnabledTags: 0"的问题
- 几种常见排序算法的实现(冒泡法,选择法,插入法,快速排序、堆排序)
- GlusterFS源码解析 —— GlusterFS 配置
- 微软100题算法解答
- spring mvc 控制层梳理
- CSDN挑战编程——《绝对值最小》
- 面向新手的Web服务器搭建(一)——IIS的搭建
- ncnc
- SimpleExpandableListAdapter(分组List)参数详解
- 如何成为一个C++高级程序员
- Machine Learning(Andrew)Week9(上)
- Android修炼之道—Talker聊天小工具