题目
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
示例
输入: 12258
输出: 5
解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
方法1
Java实现
class Solution {
public int maxPoints(int[][] points) {
int m = points.length, n = points[0].length;
//至少有一个点在一条线
int ans = 1;
for (int i = 0; i < m; i++) {
int[] x = points[i];
for (int j = i + 1; j < m; j++) {
int[] y = points[j];
int cnt = 2;
for (int k = j + 1; k < m; k++) {
int[] z = points[k];
int s1 = (y[1] - x[1]) * (z[0] - y[0]);
int s2 = (z[1] - y[1]) * (y[0] - x[0]);
if (s1 == s2) cnt++;
}
ans = Math.max(ans, cnt);
}
}
return ans;
}
}