LeetCode | 754. Reach a Number 数学原理题解析与证明 - u012737193的博客 - CSDN博客



LeetCode | 754. Reach a Number 数学原理题解析与证明 - u012737193的博客 - CSDN博客

给你一个数,第n次可以向左走,也可以向右走,问你最少多少次可以走到目的地

一开始我考虑的是广度优先遍历解决,但是这样的话由于target太大,内存超了,于是只好考虑其他的方法,思考过后我发现这题用数学的方法解决其实很简单,首先,要到达目的地一定会有向左和向右,我们假设一定有一个最好的方案,a1,a2,a3…an,假如a1到an都是正数,那么它一定是最好的方案,假如存在负数,那么可以看成把a1,a2…an里面的若干个数变成负数,然后到达target,可以证明,当a1+a2..an-target为偶数的时候,只需要把a1,a2,…an里面的一个数变成负数就能到达目的地,这就是最好的方案

当a1+a2..an-target为奇数的时候,有两种情况,当n为偶数的时候,n+1为奇数,可以证明,当把a1,a2..an里面一个数变成负数之后,只要在加一个数就能到达target,也就是a1+a2…an+an+1一定可以到达target,当n为奇数的时候,可以证明当把a1,a2..an里面一个数变成负数之后只要在加两个个数就能到达target,也就是a1+a2…an+an+1+an+2,所以有以下算法


Read full article from LeetCode | 754. Reach a Number 数学原理题解析与证明 - u012737193的博客 - CSDN博客


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts