Posts

Showing posts with the label math

729. Last Digit By Factorial Divide

Description 中文 English We are given two numbers  A  and  B  such that  B >= A . We need to compute the last digit of this resulting F such that F =  B! / A!  where 1 <= A, B <=  10^18  (A and B are very large) Have you met this question in a real interview?    Yes Problem Correction Example Given A = 2, B = 4, return 2 A! = 2 and B! = 24, F = 24 / 2 = 12 --> last digit = 2 Given A = 107, B = 109, return 2 只看个位数就好了。有意思 int computeLastDigit ( long long A, long long B) { // write your code here int res = 1 ; for ( long long i = A + 1 ; i <= B; i++){ res *= (i % 10 ); res %= 10 ; if (res == 0 ){ return 0 ; } } return res; }

double check 912. Best Meeting Point

Description 中文 English A group of two or more people wants to meet and minimize the total travel distance. You are given a 2D grid of values  0  or  1 , where each  1  marks the home of someone in the group. The distance is calculated using  Manhattan Distance , where  distance(p1, p2) = |p2.x - p1.x| + |p2.y - p1.y| . Have you met this question in a real interview?    Yes Problem Correction Example Given three people living at  (0,0) ,  (0,4) , and  (2,2) : 1 - 0 - 0 - 0 - 1 | | | | | 0 - 0 - 0 - 0 - 0 | | | | | 0 - 0 - 1 - 0 - 0 The point  (0,2)  is an ideal meeting point, as the total travel distance of  2 + 2 + 2 = 6  is minimal. So return  6 . 这道题让我们求最佳的开会地点,该地点需要到每个为1的点的曼哈顿距离之和最小,题目中给了我们提示,让我们先从一维的情况来分析,那么我们先看一维时有两个点A和B的情况, ______A_____P_______B_______ 那么我们可以发现,只要开会为位置P在[A, B]区间内,不管在哪,距离之和都是A和B之间的距离,如果P不在[A, B]之间,那么距离之和就会大于A和B之间的距离,那么我们现在再加两个...