目录
零、写在前面
这个系列不经常更新,今天这个题目因为必须写题解才能打卡,唉,主要知识点在
一、主要知识点
1.辗转相除法
其实这是高中知识?还是初中?其实就是不断的辗转取余。好像也叫除留余数法。
int GCD(int a,int b){
//如果b有值的话继续下一层除留余数,如果a被b除尽就返回a
return b ? GCD(b,a%b) : a;
}
二、课后习题
1979. 找出数组的最大公约数
1979. 找出数组的最大公约数https://leetcode-cn.com/problems/find-greatest-common-divisor-of-array/
题目描述
给你一个整数数组
nums
,返回数组中最大数和最小数的 最大公约数 。两个数的 最大公约数 是能够被两个数整除的最大正整数。
思路
先找到最大最小值,然后求最大公约数就好了。
int GCD(int a,int b){//辗转相除
return b ? GCD(b,a%b) : a;
}
int findGCD(int* nums, int numsSize){
int max = nums[0], min = nums[0] ;//最大最小
for(int i = 1; i < numsSize; i++){
if(max < nums[i]) max = nums[i];
if(min > nums[i]) min = nums[i];
}
return GCD(max,min);
}
写在最后
要死,要死,今晚考试,祝我顺利-.-