leetcode 780. Reaching Points

原创 2018年04月16日 12:16:12

题目:

A move consists of taking a point (x, y) and transforming it to either (x, x+y) or (x+y, y).

Given a starting point (sx, sy) and a target point (tx, ty), return True if and only if a sequence of moves exists to transform the point (sx, sy) to (tx, ty). Otherwise, return False.

Examples:
Input: sx = 1, sy = 1, tx = 3, ty = 5
Output: True
Explanation:
One series of moves that transforms the starting point to the target is:
(1, 1) -> (1, 2)
(1, 2) -> (3, 2)
(3, 2) -> (3, 5)

Input: sx = 1, sy = 1, tx = 2, ty = 2
Output: False

Input: sx = 1, sy = 1, tx = 1, ty = 1
Output: True

思路:

(tx,ty)肯定是(tx-ty,ty)变来的(tx>ty),递归求解。需要注意的是当1,1,1000000,1时递归很大,需要剪枝,判断可以直接由另一个不断叠加而来就行。

class Solution {
public:
    bool reachingPoints(int sx, int sy, int tx, int ty) {
        if(tx == sx&&ty == sy) return true;
        if(tx<sx||ty<sy) return false;
        if(tx==sx&&ty!=sy){
            if((ty-sy)%sx==0){
                return true;
            } else {
                return false;
            }
        } 
        if(tx!=sx&&ty==sy) {
            if((tx-sx)%sy==0){
                return true;
            } else {
                return false;
            }
        }
        
        if(tx>ty) {
            return reachingPoints(sx,sy,tx-ty,ty);
        } else {
            return reachingPoints(sx,sy,tx,ty-tx);
        }
    }
};

leetcode#780. Reaching Points

780. Reaching Points [hard] Problem Description: A move consists of taking a point (x, y) and...
  • Faldict
  • Faldict
  • 2018年02月12日 23:09
  • 75

Weekly Contest 71 leetcode 780. Reaching Points

A move consists of taking a point (x, y) and transforming it to either (x, x+y) or (x+y, y). Given...
  • huanghanqian
  • huanghanqian
  • 2018年02月11日 15:12
  • 129

LWC 71: 780. Reaching Points

LWC 71: 780. Reaching Points 传送门:780. Reaching Points Problem: A move consists of taking a poi...
  • u014688145
  • u014688145
  • 2018年02月11日 18:05
  • 148

780. Reaching Points

A move consists of taking a point (x, y) and transforming it to either (x, x+y) or (x+y, y).Given a ...
  • zjucor
  • zjucor
  • 2018年02月12日 11:38
  • 79

[Leetcode] 780. Reaching Points 解题报告

题目: A move consists of taking a point (x, y) and transforming it to either (x, x+y) or (x+y, y). ...
  • magicbean2
  • magicbean2
  • 2018年03月27日 15:49
  • 15

** Leetcode 780. Reaching Points | 数学 or 思维

https://leetcode.com/problems/reaching-points/description/类似搜索的题,从终点往起点看,比较容易猜到正解。这个题的关键点是,如果 ty &am...
  • u011026968
  • u011026968
  • 2018年03月14日 20:52
  • 44

【LeetCode】Max Points on a Line 解题报告

【题意】 求二维平面上n个点中,最多共线的点数。 【思路】 比较直观的方法是,三层循环,以任意两点划线,判断第三个点是否在这条直线上。 【Java代码】 /** * Definition for a...
  • ljiabin
  • ljiabin
  • 2014年08月28日 22:05
  • 6669

Geeks面试题: Closest Pair of Points

好困难的一道题目,虽然方法是二分法,但是其中也牵涉到暴力法,其中的函数qsort的使用也值得学习学习。 其中最难的地方: 就是上面说的第6步。其中的证明可以上网找找资料,其实也不是很难。 会了证明之...
  • kenden23
  • kenden23
  • 2014年03月08日 08:23
  • 1997

leetcode 149:Max Points on a Line(java实现)细致分析

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line...
  • tingting256
  • tingting256
  • 2015年11月04日 23:35
  • 727

LeetCode(149)Max Points on a Line

题目如下: Given n points on a 2D plane, find the maximum number of points that lie on the same straight ...
  • feliciafay
  • feliciafay
  • 2014年03月07日 13:49
  • 2114
收藏助手
不良信息举报
您举报文章:leetcode 780. Reaching Points
举报原因:
原因补充:

(最多只允许输入30个字)