墨子全鉴(典藏诵读版)

墨子全鉴(典藏诵读版)

加载中...

微信扫码,免登录解锁高速下载

如何使用 & 隐私说明

精彩点评

  • 墨子全鉴(典藏诵读版)
    AAAAAA
    推荐

    个人感觉本书的精髓:“在面试的时候遇到难题,我们有 3 种办法分析、解决复杂的问题:画图能使抽象问题形象化,举例使抽象问题具体化,分解使复杂问题简单化”。画图举例分解!!!!!!

  • 墨子全鉴(典藏诵读版)
    【2979】龙卷风完美主义少女小李
    推荐

    2020年的第1208本 看到第13题的时候就给所有大四大三学员推送过去了,然后中间一个大一孩子给我打卡,我截图给她能看懂吗,她说可以看懂,俺的心里热乎乎的!嘿嘿嘿,等开了网我也开发个小程序耍一耍,成天看高考题太没成就感了

  • 墨子全鉴(典藏诵读版)
    shuxiaotai
    推荐

    这本书已经让我养成了非常好的习惯,写代码以前先判空,历时四个月。思路讲解得很好,刚开始一天一道都很困难,中间一度怀疑自己然后两个月没碰这些题,现在一天两道都可以了,有些看完思路就能自己写出来的感觉真的太棒了,配合leetcode效果非凡。后面结合这些思路遇到新题时候自己思索再试着写出来,还要再补一下基础。 期间面试到两个刷了200多道算法的候选人,一个还是金融专业的小姐姐,真是瑟瑟发抖。但是现在!我也是刷了50多道的人了哈哈哈哈哈哈哈哈哈哈哈哈

  • 墨子全鉴(典藏诵读版)
    ACJ
    推荐

    亲身经历,阿里+腾讯+网易面试/笔试,均遇到本书原题。本书对题目的解析也很好,很赞!

  • 墨子全鉴(典藏诵读版)
    Cargo_Cult编程
    推荐

    有思路讲解,覆盖了面试中常见的问题和场景。只是选题已经比较老了还可以再经典一些,比自己闷头刷题效率和质量上都好很多。 通常面试官除了期待应聘者写出的代码能够完成基本的功能之外,还能应对特殊情况并对非法输入进行合理的处理。 >通常面试官除了期待应聘者写出的代码能够完成基本的功能之外,还能应对特殊情况并对非法输入进行合理的处理。 除此之外,有些面试官还喜欢考查应聘者的知识迁移能力、抽象建模能力和发散思维能力。 >除此之外,有些面试官还喜欢考查应聘者的知识迁移能力、抽象建模能力和发散思维能力。 如果面试的时候遇到的题目很难,我们可以试图把一个大的复杂的问题分解成若干个小的简单的子问题,然后递归地去解决这些子问题。 >如果面试的时候遇到的题目很难,我们可以试图把一个大的复杂的问题分解成若干个小的简单的子问题,然后递归地去解决这些子问题。 如何从基本功能测试、边界值测试、性能测试等方面去设计测试用例,从而提高编写高质量代码的能力 >如何从基本功能测试、边界值测试、性能测试等方面去设计测试用例,从而提高编写高质量代码的能力 ◆ 1.2 面试的三种形式 如果应聘者是先写单元测试用例,再写解决问题的函数,我相信面试官定会对你刮目相看,因为能做到测试在前、开发在后的程序员实在是太稀缺了,他会毫不犹豫地抛出绿色的橄榄枝。 >如果应聘者是先写单元测试用例,再写解决问题的函数,我相信面试官定会对你刮目相看,因为能做到测试在前、开发在后的程序员实在是太稀缺了,他会毫不犹豫地抛出绿色的橄榄枝。 ◆ 1.3 面试的三个环节 面试官除了希望应聘者的代码能够完成基本的功能之外,还会关注应聘者是否考虑了边界条件、特殊输入(比如 NULL 指针,空字符串等)及错误处理。 >面试官除了希望应聘者的代码能够完成基本的功能之外,还会关注应聘者是否考虑了边界条件、特殊输入(比如 NULL 指针,空字符串等)及错误处理。 面试小提示: 如果在面试的时候遇到难题,我们有 3 种办法分析、解决复杂的问题:画图能使抽象问题形象化,举例使抽象问题具体化,分解使复杂问题简单化。 >面试小提示: 如果在面试的时候遇到难题,我们有 3 种办法分析、解决复杂的问题:画图能使抽象问题形象化,举例使抽象问题具体化,分解使复杂问题简单化。 ◆ 1.4 本章小结 基础知识是否扎实、能否写出高质量的代码、思路是否清晰、是否有优化效率的能力,以及包括学习能力、沟通能力在内的综合素质是否优秀。 >基础知识是否扎实、能否写出高质量的代码、思路是否清晰、是否有优化效率的能力,以及包括学习能力、沟通能力在内的综合素质是否优秀。 ◆ 2.3 数据结构 在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针 >在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针 当几个指针赋值给相同的常量字符串时,它们实际上会指向相同的内存地址。但用常量内存初始化数组,情况却有所不同。数组会先分配一块内存,然后将字符内容拷贝到内存中。所以是不同的内存地址。 >为了节省内存,C/C++把常量字符串放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,它们实际上会指向相同的内存地址。但用常量内存初始化数组,情况却有所不同。 ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是: 1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 out 方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。 当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。 若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。 不必初始化作为 out 参数传递的变量。 >ref或者out 合并两个数组(包括字符串)时,如果从前往后复制每个数字(或字符)需要重复移动数字(或字符)多次,那么我们可以考虑从后往前复制,这样就能减少移动的次数,从而提高效率。 >合并两个数组(包括字符串)时,如果从前往后复制每个数字(或字符)需要重复移动数字(或字符)多次,那么我们可以考虑从后往前复制,这样就能减少移动的次数,从而提高效率。 ◆ 2.4 算法和数据操作 >> 哈希表最主要的优点是我们利用它能够在 O(1)时间查找某一元素,是效率最高的查找方式。但其缺点是需要额外的空间来实现哈希表。 >> 快速排序虽然总体的平均效率是最好的,但也不是任何时候都是最优的算法。比如数组本身已经排好序了,而每一轮排序的时候都是以最后一个数字作为比较的标准,此时快速排序的效率只有O(n2) >> 因为除法的效率比移位运算要低得多,在实际编程中应尽可能地用移位运算符代替乘除法。 二进制问题的杀手锏–>如何消去最右边的1–>数的二进制中有多少个1 >把一个整数减去 1 之后再和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中的最右边一个1变成0。很多二进制的问题都可以用这个思路解决。 ◆ 2.5 本章小结 >> 查找(特别是二分查找)和排序(特别是快速排序和归并排序)是面试中最经常考查的算法,应聘者一定要熟练掌握。 ◆ 3.3 代码的完整性 >> 通常面试官会检查应聘者的代码是否完成了基本功能、输入边界值是否能得到正确的输出、是否对各种不合规范的非法输入做出了合理的错误处理。 >> 通常我们可以从功能测试、边界测试和负面测试三方面设计测试用例,以确保代码的完整性 >> 如果面试题是关于 n位的整数并且没有限定 n的取值范围,或者是输入任意大小的整数,那么这个题目很有可能是需要考虑大数问题的。字符串是一个简单、有效的表示大数的方法。 ◆ 3.4 代码的鲁棒性 >> 也就是说解耦的好处就是提高了代码的重用性 避免数组插入造成O(n)复杂度,可以在数组头尾定义两个指针来解决,快排的一轮排序算法也是在这个基础上增加两个交换操作实现的。 >要在短时间内按照要求把数组分隔成两部分,不是一件容易的事情,需要较快的思维能力。 >> 鲁棒性是指程序能够判断输入是否合乎规范要求,并对不合要求的输入予以合理的处理。 >> 容错性是鲁棒性的一个重要体现。 >> 提高代码的鲁棒性的有效途径是进行防御性编程。防御性编程是一种编程习惯,是指预见在什么地方可能会出现问题,并为这些可能出现的问题制定处理方式。 >> 在面试时,最简单也最实用的防御性编程就是在函数入口添加代码以验证用户输入是否符合要求。 ◆ 第4章 解决面试题的思路 >> 应聘者可以采用举例子、画图等多种方式,解释清楚问题本身和问题解决方案是关键。 ◆ 4.2 画图让抽象问题形象化 >> 很多面试题很抽象,不是很容易找到解决办法。这时不妨画出一些与题目相关的图形,借以辅助自己观察和思考。图形能使抽象的问题具体化、形象化 >> 很多时候空想未必能想明白题目中隐含的规律和特点,随手画几张图却能让我们轻易找到窍门。 ◆ 4.3举例让抽象问题具体化 >> 如果面试题是要求处理一棵二叉树的遍历序列,我们可以先找到二叉树的根结点,再基于根结点把整棵树的遍历序列拆分成左子树对应的子序列和右子树对应的子序列,接下来再递归地处理这两个子序列。 ◆ 4.4 分解让复杂问题简单化 >> 通常分治法思路都可以用递归的代码实现 ◆ 5.2 时间效率 >> 比如 C/C++程序员要养成采用引用(或指针)传递复杂类型参数的习惯。如果采用值传递的方式,从形参到实参会产生一次复制操作。这样的复制是多余的操作,我们应该尽量避免 >> 当需要在某数据容器内频繁查找及替换最大值时,我们要想到二叉树是个合适的选择,并能想到用堆或者红黑树等特殊的二叉树来实现。 >> 虽然通常我们用递归的方式分析动态规划的问题,但最终都会基于循环去编码。 >> 一个有效的比较规则需要3个条件:自反性、对称性和传递性 ◆ 6.2 沟通能力和学习能力 >> 面试是一个双向交流的过程,面试官可以问应聘者问题,同样应聘者也可以向面试官提问。如果应聘者能够针对面试题主动地提出几个高质量的问题,面试官就会觉得他有很强的沟通能力和学习能力。 江湖险恶,HR难测。 >有些面试官故意一开始不把题目描述清楚,让题目存在一定的二义性。他期待应聘者能够一步步通过提问来弄明白题目的要求。 >> 有些面试官故意一开始不把题目描述清楚,让题目存在一定的二义性。他期待应聘者能够一步步通过提问来弄明白题目的要求。 ◆ 6.3 知识迁移能力 >> 每个结点只遍历一次的解法,正是面试官喜欢的 >> 通常我们可以用循环求一个连续序列的和,但考虑到每一次操作之后的序列和操作之前的序列相比大部分数字都是一样的,只是增加或者减少了一个数字,因此我们可以在前一个序列的和的基础上求操作之后的序列的和。这样可以减少很多不必要的运算,从而提高代码的效率。 ◆ 6.4 抽象建模能力 >> 建模的第一步是选择合理的数据结构来表述问题。 >> 建模的第二步是分析模型中的内在规律,并用编程语言表述这种规律。

  • 墨子全鉴(典藏诵读版)
    三掌柜
    推荐

    虽然知识点和我的专业关系不大,但是逻辑思维和处理方法还是相通的,让我想起来之前每次去面试的时候,遇到技术面就抓瞎,回答不上来问题就很尴尬,但是有一点是深圳的技术面试官很装逼,有些觉得自己懂一点技术就厉害的不行,但是真正的技术大佬都很和蔼可亲,这就是反差,面试找工作这件事也是得看缘分的。纸质书已经买了。

  • 墨子全鉴(典藏诵读版)
    Bin
    推荐

    面试必看的一本书,非常经典,看完收获不少,还是要多动手,提到的面试题不多,看了下附上的完整代码,每一个都有各种不同输入测试,争取自己先刷一遍,然后对照一下找差距。

  • 墨子全鉴(典藏诵读版)
    乔居双
    推荐

    之前校招季看过本书,没看完,这次又要换工作又看了一遍看完了。觉得对于应聘初级岗位还是很有帮助的,配合着刷leetcode效果更爽!有时候思路很简单,程序写出来全是坑。多实践才是程序员的第一要义!

  • 墨子全鉴(典藏诵读版)
    琦琦
    推荐

    一本好书。对数据结构和算法的理解又深入了一步。喜欢链表/树/位运算/辅助栈/队列/排序这种类型的题目,但每次出现递归题,需要在纸上画半天才能理解[流泪]感慨自己的智商捉急。尤其是递归函数嵌套在代码中间的代码,更是难上加难。。。 anyway,有趣的程序有趣的代码!继续努力吧! 全书都是基于c++语言实现的,相当于又温习了一遍c++。

Copyright © 2020 - 2022 Mitsuha. All Rights Reserved. 用户协议 · 隐私政策 ·