上岸算法 | LeetCode Weekly Contest 第 252 場周賽解題報告

力扣第 252 場周賽解題報告

NO1.三除數

n 是三除數當且僅當它的除數爲 1, n 和 sqrt(n)app

class Solution {
    public boolean isThree(int n) {
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) {
                return i * i == n;
            }
        }
        return false;
    }
}

NO.2 你能夠工做的最大週數

咱們並不須要關心如何安排工做。只要工做量最大的任務不超過其餘任務的總和,那麼必定能夠完成全部的任務,不然工做量最大的任務將會剩下一部分沒法完成。code

class Solution {
    public long numberOfWeeks(int[] milestones) {
        long sum = 0, max = 0;
        for (int i : milestones) {
            sum += i;
            max = Math.max(max, (long) i);
        }
        if (sum - max >= max) {
            return sum;
        }
        return sum - (max * 2 - sum - 1);
    }
}

NO.3 收集足夠蘋果的最小花園周長

二分答案 + 數學推導。能夠寫出兩層循環,而後數列求和,便可獲得總的求和公式。ci

class Solution {
    public long minimumPerimeter(long neededApples) {
        long min = 1, max = (long) 100000;
        while (min + 1 < max) {
            long mid = (min + max) / 2;
            if (apples(mid) < neededApples) {
                min = mid;
            } else {
                max = mid;
            }
        }
        return (apples(min) >= neededApples ? min : max) * 8;
    }

    private long apples(long dis) {
        long result = 0;
//        for (long x = -dis; x <= dis; x++) {
//            for (long y = -dis; y <= dis; y++) {
//                result += Math.abs(x) + Math.abs(y);
//            }
//        }
        result += (1 + dis) * dis * (dis * 2 + 1);
        result += (1 + dis) * dis * (dis * 2 + 1);
        return result;
    }
}

NO.4 統計特殊子序列的數目

遞推便可。過程當中記錄 0 序列數量、01 序列數量、012 序列數量,令 dp[1] 表示 0 序列數量,dp[2] 表示 01 序列,dp[3] 表示 012 序列。數學

  • 若當前位是 0,則能夠增長 dp[1] + 1 個 0 序列
  • 若當前位是 1,則能夠增長 dp[2] + dp[1] 個 01 序列
  • 若當前位是 2,則能夠增長 dp[3] + dp[2] 個 012 序列
class Solution {
    public int countSpecialSubsequences(int[] nums) {
        long[] dp = {1, 0, 0, 0};
        for (int num : nums) {
            dp[num + 1] = (dp[num + 1] * 2 + dp[num]) % 1000000007L;
        }
        return (int) dp[3];
    }
}
相關文章
相關標籤/搜索