Greatest Common Divisor
题目地址:
https://www.lintcode.com/problem/greatest-common-divisor/description
求两个正整数的最大公约数。
思路是辗转相除法。代码如下:
public class Solution {
/**
* @param a: the given number
* @param b: another number
* @return: the greatest common divisor of two numbers
*/
public int gcd(int a, int b) {
// write your code here
if (a * b == 0) {
return a + b;
}
while (b != 0) {
int tmp = a % b;
a = b;
b = tmp;
}
return a;
}
public static void main(String[] args) {
System.out.println(new Solution().gcd(10, 15));
}
}
时间复杂度 O ( log max { a , b } ) O(\log \max\{a,b\}) O(logmax{a,b})(原因是 ( a , b ) (a,b) (a,b)的减少速度一定至少快于斐波那契数列,而斐波那契数列的增长速度是指数级的),空间 O ( 1 ) O(1) O(1)。
本文地址:https://blog.csdn.net/qq_46105170/article/details/110228209
上一篇: JAVA-System类和StringBuilder类介绍
下一篇: Mybatis 框架快速入门
推荐阅读
-
SPOJ1811 LCS - Longest Common Substring(后缀自动机)
-
Uchome1.2 1.5 代码学习 common.php
-
(杭电1019 最大公约数) Least Common Multiple
-
通过未初始化全局变量,研究BSS段和COMMON段的不同
-
idea中flink启动报错org.apache.flink.api.common.ExecutionConfig$GlobalJobParameters
-
中型WPF客户端开发项目总结(3.2) - 公共基础 `XXXX.Common` 项目
-
Error:Could not find common.jar (android.arch.core:common:1.0.0)
-
使用Common.Logging+log4net规范日志管理
-
Dapper扩展Dapper.Common框架 Linq To Sql 底层源码.net ORM框架
-
如何调用common.js