标签:slope 1232 int MAX Straight coordinates 斜率 Input Check
问题:
给定一组坐标点,问这些坐标点是否在一条直线上。
Example 1: Input: coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]] Output: true Example 2: Input: coordinates = [[1,1],[2,2],[3,4],[4,5],[5,6],[7,7]] Output: false Constraints: 2 <= coordinates.length <= 1000 coordinates[i].length == 2 -10^4 <= coordinates[i][0], coordinates[i][1] <= 10^4 coordinates contains no duplicate point.
解法:
任意两点之间点斜率slope(k)相等。
double slope=(y1-y2)/(x1-x2)
⚠️ 注意:
特殊的两条线,平行于x轴,y轴的两种线
平行于x轴的斜率为0,
平行于y轴的斜率为∞,这里假设为INT_MAX
代码参考:
1 class Solution { 2 public: 3 bool checkStraightLine(vector<vector<int>>& coordinates) { 4 int N=coordinates.size(); 5 if(N==2) return true; 6 double k=(coordinates[1][0]-coordinates[0][0]==0)?INT_MAX:(coordinates[1][1]-coordinates[0][1])*1.0/(coordinates[1][0]-coordinates[0][0]); 7 for(int i=2; i<N; i++){ 8 double k1=(coordinates[i][0]-coordinates[i-1][0]==0)?INT_MAX:(coordinates[i][1]-coordinates[i-1][1])*1.0/(coordinates[i][0]-coordinates[i-1][0]); 9 if(k1!=k) return false; 10 } 11 return true; 12 } 13 };
标签:slope,1232,int,MAX,Straight,coordinates,斜率,Input,Check 来源: https://www.cnblogs.com/habibah-chang/p/13335047.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。