玩转二算法课的笔记-第一章

1 问题:对一组数据进行排序
回答:快速排序算法o(NLOGN),错误。
关键词:思考
应该问面试官,这组数据有什么样的特征?
比如;有没有可能包含大量重复的元素?
如果有这个可能的话,=三路快排是更好的选择
比如:是否大部分数据距离它正确的位置很近?是否近乎有序?(银行的业务)。插入排序较好
比如:是否数据的取值范围非常有限?比如学生成绩排序
则计数排序是更好的选择
比如:是否有额外的要求?
是否需要稳定排序?则归并排序是更好的选择
比如:数据的存储状况是怎么样的?
是否是使用链表存储的,此时归并排序较好
数据的大小是否可以装载在内存里:数据量很大,或者内存很小等等,可能就需要外排。
在这里插入图片描述

2 什么是正确的回答一个算法问题:
正确还包含对问题的独到见解;优化;代码规范;容错性;
在这里插入图片描述

3 项目经历和项目中遇到的实际问题
你遇到的印象最深的不过是什么
面向对象
设计模式
网络相关;安全相关;内存相关;并发相关;
系统设计;stability;
4 关于过去:参与项目至关重要
本科生其实也可以说毕业设计和其他课程设计.
如何找到项目:实习;参与实战课程学习(慕课网;coursera)
创建自己的项目:
自己做小应用:计划表;备忘录;播放器
自己解决小问题:爬虫;数据分析;词频统计等工具的开发
不是“项目”的项目:一本优秀的技术书籍的代码整理等
分享:自己的技术博客;github等;

在这里插入图片描述
最好能够具体结合某个项目,某个算法,结合实际场景
5 准备好合适的问题问面试官
整个小组的大概运行模式是怎样的?
整个项目的后续规划是如何的?
这个产品的某个问题是如何解决的?
为什么会选择某些技术?标准?
我对某个技术比较感兴趣,在你的小组中会有怎样的机会深入这种技术?等等

6在这里插入图片描述
zZG4ubmV0L3N0YXlfZm9vbGlzaDEy,size_16,color_FFFFFF,t_70)
7 解决算法面试问题的整体思路
注意题目中的条件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
优化算法:
遍历常见的算法思路
遍历常见的数据结构

空间和时间的交换(哈希表)
预处理信息(排序)
在瓶颈处寻找答案O(nlogn)+O(n^(2)); O(N^3)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值