Leetcode刷题100天—1979. 找出数组的最大公约数(数学)—day19

Posted 神的孩子都在歌唱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题100天—1979. 找出数组的最大公约数(数学)—day19相关的知识,希望对你有一定的参考价值。

前言:

作者:神的孩子在歌唱

大家好,我叫运智

1979. 找出数组的最大公约数

难度简单2收藏分享切换为英文接收动态反馈

给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数

两个数的 最大公约数 是能够被两个数整除的最大正整数。

示例 1:

输入:nums = [2,5,6,9,10]
输出:2
解释:
nums 中最小的数是 2
nums 中最大的数是 10
210 的最大公约数是 2

示例 2:

输入:nums = [7,5,6,8,3]
输出:1
解释:
nums 中最小的数是 3
nums 中最大的数是 8
38 的最大公约数是 1

示例 3:

输入:nums = [3,3]
输出:3
解释:
nums 中最小的数是 3
nums 中最大的数是 3
33 的最大公约数是 3

提示:

  • 2 <= nums.length <= 1000
  • 1 <= nums[i] <= 1000
package 水题;
/*
 * https://leetcode-cn.com/problems/find-greatest-common-divisor-of-array/
 */
public class _1979_找出数组的最大公约数 {
    public int findGCD(int[] nums) {
    	int max=0,min=1001;
//    	循环找最大值
    	for(int num:nums) {
//    		找出最大值
    		if (max<num) {
				max=num;
			}
//    	找出最小值
    		if (min>num) {
				min=num;
			}
    	}
//    	通过while循环找出公约数
    	while(min!=0) {
//    		得到余数,比如7%3=1
    		int temp=max%min;
//    		这时候最小min就变成最大的了,max=3
    		max=min;
//    		min等于余数还是最小的min=1
    		min=temp;
//    		最后在循环一边3%1=0,max=1,min=0,返回1,1就是他们的最大公约数
    	}
    	return max;
    }
}

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

以上是关于Leetcode刷题100天—1979. 找出数组的最大公约数(数学)—day19的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—2028. 找出缺失的观测数据(数组)—day56

Leetcode刷题100天—2028. 找出缺失的观测数据(数组)—day56

Leetcode刷题100天—5855. 找出数组中的第 K 大整数(优先队列)—day22

Leetcode刷题100天—5855. 找出数组中的第 K 大整数(优先队列)—day22

Leetcode刷题100天—1980. 找出不同的二进制字符串(字符串)—day19

Leetcode刷题100天—1980. 找出不同的二进制字符串(字符串)—day19