Jay's Blog

知而不行为不知


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 留言

  • 搜索

面试算法之时间复杂度

发表于 2018-07-12 | 分类于 面试算法 | 阅读次数:
字数统计: 262 字 | 阅读时长 ≈ 1 分钟

大O表示法:平均情况,是正比,与前面的常数关系不大;

了解常用数据规模情况下的复杂度:

如果想在1s内解决问题:
O(N2)的算法可以处理大约10^4级别的数据;
O(N)的算法可以处理大约10^8级别的数据;
O(NlogN)的算法可以处理大约10^7级别的数据;

空间复杂度:递归调用是有空间代价的,递归的深度是多少,空间复杂度就是多少

复杂度试验:实验,观察趋势

递归的时间复杂度并不一定是O(NlogN),与调用次数(递归深度)有关,画出递归树来分析。
通常,分治的复杂度是logN.

主定理

均摊复杂度分析:以动态数组的生成为例,当元素个数大于当前数组容量,容量增大一倍;当元素个数小于当前容量的1/4,容量变为1/2【这样是为了防止复杂度震荡】

算法面试

发表于 2018-07-11 | 分类于 面试算法 | 阅读次数:
字数统计: 461 字 | 阅读时长 ≈ 1 分钟

关键

算法面试并不是看你给出的是不是正确答案,而是思考路径,对于问题的细节和应用环境,不断深入。
关键在于解决问题的思路。
甚至通过分析解题方向,得到应该在哪个领域去找。

算法面试的准备范围:

  1. 各种排序算法
  2. 基础数据结构和算法的实现:堆、二叉树、图
  3. 基础数据结构的使用:链表、栈、队列、哈希表、图、并查集
  4. 基础算法:深度优先、广度优先、二分查找、递归
  5. 基本算法思想:递归、分治、回溯搜索、贪心、动态规划

技术面试的问题

  • 梳理项目中遇到的问题?
  • 遇到印象最深的bug
  • 面向对象
  • 设计模式
  • 网络相关;安全相关;内存相关;并发相关;
  • 系统设计;

关于项目:

项目来源:

  1. 实战课程学习
  2. 创建自己的项目
    2.1 自己做小应用:
    2.2 自己解决的实际问题:爬虫;数据分析;词频统计;自动充值;自动邮箱通知。
    2.3 不是项目的项目:总结
    2.4 分享:自己的技术博客;github

通过过去了解你的思考行为方式

  • 遇到的最大的挑战
  • 最享受的工作内容

准备好合适的问题问面试官

  • 整个小组的大概运行模式是怎样的?
  • 整个项目的后续规划是如何的?
  • 这个产品中的某个问题是如何解决的?
  • 为什么项目中会选择某些技术?标准?
  • 我对某个技术很感兴趣,在小组中我会有怎样的机会深入?

高级数据结构和算法面试提及的概率很低:

  • 红黑树
  • 计算几何
  • B-Tree
  • 数论
  • 斐波那契堆

拒绝无意义的事情,把时间浪费在美好事情上

发表于 2018-07-10 | 阅读次数:
字数统计: 122 字 | 阅读时长 ≈ 1 分钟

最近拖延症太严重了啊!!!!

抓紧时间准备找工作吧,把时间用在刷题上面,不要做这些无意义的事情了:

  • 游戏
  • 看游戏视频
  • 看综艺
  • 看微博

早睡早起,锻炼身体,早点躺下听听喜马拉雅也挺好啊

尤其是无意义的社交,拒绝自我麻木,自我高潮。

对自己狠一点吧,你的父母尚在苟且之中,你却在谈什么诗和远方。

简历项目整理

发表于 2018-07-03 | 分类于 简历 | 阅读次数:
字数统计: 168 字 | 阅读时长 ≈ 1 分钟

大概分为两个大方向

  1. 电气
  2. 编程
    2.1 软件开发
    2.2 算法

电气方向的项目

先简要写(等到9月份再详细)

  1. 电力市场评价
  2. 机房温度控制
  3. 相位识别

编程方向

先把相关的项目都罗列出来,然后再在软件开发和算法中索引起来

  1. 自动化成绩分析系统
  2. 在线考试系统
  3. 空工大(有没有相应的文档和代码)
  4. 停车项目(有问题)
  5. 自己练习项目:

    权限管理
    商城
    OA平台
    springboot整合shiro
    网站架构,linux
    爬虫,有助于理解浏览器请求原理:技术方案
    python django

桶排序

发表于 2018-06-20 | 阅读次数:
字数统计: 170 字 | 阅读时长 ≈ 1 分钟

基本思想

桶排序的基本思想是将一个数据表分割成许多buckets,然后每个bucket各自排序,或用不同的排序算法,或者递归的使用bucket sort算法。也是典型的divide-and-conquer分而治之的策略。它是一个分布式的排序,介于MSD基数排序和LSD基数排序之间。

基本流程

建立一堆buckets;
遍历原始数组,并将数据放入到各自的buckets当中;
对非空的buckets进行排序;
按照顺序遍历这些buckets并放回到原始数组中即可构成排序后的数组。

参考链接

链接

应用

待总结啊

近一周在忙中期

发表于 2018-06-12 | 阅读次数:
字数统计: 79 字 | 阅读时长 ≈ 1 分钟

三四天没有看算法,写代码了、、、
做ppt做的头疼啊。。。

20180625更新,ppt做了两周多。。。。实在做不出来了啊啊啊啊啊啊

20180629中期终于结束,24小时完成PPT制作和中期报告(当然了PPT有基础,而且前期资料积累也很关键)

神器网站

发表于 2018-06-01 | 阅读次数:
字数统计: 168 字 | 阅读时长 ≈ 1 分钟
  1. HiPPTER | PPT资源导航网站:www.hippter.com
  2. OK插件www.oktools.xyz
  3. 口袋动画 www.papocket.com
  4. iSlide插件www.islide.cc
  5. PS在线精简版www.uupoop.com
  6. 稿定抠图www.gaoding.com
  7. 音视频在线转换、录屏 www.apowersoft.cn
  8. 静态图片压缩网站 https://tinypng.com
  9. 办公工具合集-万彩办公大师 www.wofficebox.com
  10. 超级云端应用空间-uzer:www.uzer.me
  11. 思维导图:ProcessOn:www.processon.com
  12. 虫部落快搜:search.chongbuluo.com
  13. 插件网:www.cnplugins.com
  14. 淘小众网站:taoxiaozhong.com
  15. 美丽修行:www.bevol.cn
  16. 天眼查www.tianyancha.com
  17. 传送门 chuansong.me
  18. GIF录制利器-ScreenToGif :www.screentogif.com
  19. 不同终端传输利器·xender:www.xender.com
  20. 秋叶PPT官网: qiuyeppt.com

JZOffer之解决面试题的思路

发表于 2018-05-26 | 阅读次数:
字数统计: 61 字 | 阅读时长 ≈ 1 分钟

** 1. 画图 **
档设计链表、二叉树、栈等数据结构时
** 2. 具体化 **
自己举几个情况,一遍一遍走一下,发现规律
** 3. 分解 **
把大问题化为小问题,递归;分治法,动态规划

JZOffer之高质量的代码

发表于 2018-05-26 | 阅读次数:
字数统计: 213 字 | 阅读时长 ≈ 1 分钟

规范性
合理的变量和函数命名,保证可读性,最好用完整的英文单词组合。
完整性

  1. 设计测试用例:

    功能测试(除了常规输入之外,还有题目中的范围,比如大数问题,就需要用字符串或者数组来表示大的数字,以确保不会溢出)
    边界测试(结束循环、递归的便捷条件是否正确)
    负面测试(考虑错误输入)

  2. 错误处理:

    返回值
    返回全局变量
    异常
    鲁棒性
    鲁棒性体现了容错性,表示当出现了与预期的条件不一样时的情况的处理。

  3. 输入参数检查
    比如,指针是否为空,字符串是否为空,路径是否存在,超出范围怎么办?
  4. 针对题目提问“如果不,那么”

基础知识的刷题顺序

发表于 2018-05-22 | 阅读次数:
字数统计: 74 字 | 阅读时长 ≈ 1 分钟

初步按照如下步骤

  1. 算法,并实现书中的例子
  2. 剑指offer,着重看他怎么用画图和分解的方法来分析题目,以及代码编写规范;
  3. leetcode
  4. 程序员代码面试指南-IT名企算法与数据结构题目最优解
<i class="fa fa-angle-left"></i>1…252627<i class="fa fa-angle-right"></i>

264 日志
34 分类
38 标签
GitHub Zhihu Wechat
© 2024 史海杰 | Site words total count: 722k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4