GithubHelp home page GithubHelp logo

target-offer's Introduction

Target-Offer

根据《剑指offer》中的题目,用python来进行编写

add 2018.8.2
历时一个多月,终于完成了《剑指offer》,里面很多题目很有意思,其变式在面经中经常看到,值得刷一刷。
但草草的刷了一遍之后,发现还有很多地方没完全掌握,应该花一点时间来总结一下

解决复杂问题的思路

解决难题的三种方法:

  1. 画图
  2. 举例
  3. 分解

图形能使抽象的问题形象化。当面试题设计链表,二叉树等数据结构时,如果在纸上画几张草图,则题目中隐藏的规律就有可能变得很直观。
一两个例子能使抽象的问题具体化。很多与算法相关的问题都很抽象,未必一眼就能看出它们的规律。这时候我们不妨举几个例子,一步一步模拟运行的过程,说不定就能发现其中的规律,从而找到解决问题的窍门。
把复杂问题分解成若干个小问题,是可以解决很复杂问题的有效方法。如果我们遇到的问题很大,则可以尝试先把大问题分解成小问题,然后再递归地解决这些小问题。分治法/动态规划等方法应用的都是分解复杂问题的思路。

算法的使用

回溯法很适合解决迷宫及其类似的问题。如果面试题是求一个问题的最优解,那么可以尝试使用动态规划。加入我们在用动态规划分析问题时发现每一步都存在一个能得到最优解的选择,那么可以尝试使用贪婪算法。

代码的完整性

编成的时候,需要全面考虑所有可能的输入,确保写出的代码在完成了基本功能之外,还考了了边界条件,并做好了错误处理。

改善时间复杂度

降低时间复杂度的方法有两种:

  1. 改用更加高效的算法
  2. 用空间换取时间

target-offer's People

Contributors

dengshunge avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.